@@ -7,7 +7,7 @@ CURRENTDIR=$(PWD)
7
7
# ###########################
8
8
9
9
# ###########################
10
- # Environment #
10
+ # Environment #
11
11
# ###########################
12
12
13
13
# # Colour text variables
@@ -46,16 +46,14 @@ menuprompt () {
46
46
read -p " Main Menu? [y/n]: " ANS2
47
47
if [ " $ANS2 " = " n" -o " $ANS2 " = " N" ];
48
48
then
49
- continue
49
+ :
50
50
elif [ " $ANS2 " = " y" -o " $ANS2 " = " Y" ];
51
51
then
52
52
echo
53
53
echo " Returning..."
54
54
echo
55
55
sleep 0.7
56
56
break
57
- else
58
- continue
59
57
fi
60
58
done
61
59
}
@@ -69,53 +67,15 @@ proceedprompt () {
69
67
read -p " Proceed? [y/n]: " ANS4
70
68
if [ " $ANS4 " = " n" -o " $ANS4 " = " N" ];
71
69
then
72
- continue
70
+ :
73
71
elif [ " $ANS4 " = " y" -o " $ANS4 " = " Y" ];
74
72
then
75
73
sleep 0.7
76
74
break
77
- else
78
- continue
79
75
fi
80
76
done
81
77
}
82
78
83
- # # ~/.ssh check and create function
84
-
85
- sshcheckandcreate () {
86
- SSHDIRVAR=n
87
- if [ ! -d $HOME /.ssh ];
88
- then
89
- read -p " " $C " $HOME /.ssh" $D " does not exist. This is where our ssh keys and config file should be stored. Create it now? [y/n]: " SSHDIRVAR
90
- if [ " $SSHDIRVAR " = " y" -o " $SSHDIRVAR " = " Y" ];
91
- then
92
- echo
93
- echo " Attempting to backup $HOME /.ssh as sshbak to your home folder just in case. ignore the error this will produce, as" \
94
- " it means $HOME /.ssh doesn't exist, and we're clear to create it."
95
- echo
96
- sleep 1
97
- cp -r $HOME /.ssh $HOME /sshbak
98
- echo
99
- sleep 1
100
- echo " Creating $HOME /.ssh..."
101
- echo
102
- sleep 1
103
- mkdir $HOME /.ssh
104
- echo " Created! Continuing..."
105
- echo
106
- sleep 0.5
107
- else
108
- echo
109
- echo " " $R " Not creating" $D " . This tool requires ~/.ssh/ to exist."
110
- echo
111
- echo " Returning..."
112
- echo
113
- sleep 3
114
- continue
115
- fi
116
- fi
117
- }
118
-
119
79
# # Remote host variables check function
120
80
121
81
remotevarcheck () {
@@ -162,7 +122,7 @@ remotevarcheck () {
162
122
echo " Please run option 2 first."
163
123
echo
164
124
menuprompt
165
- continue
125
+ break
166
126
fi
167
127
}
168
128
203
163
sudo apt-get install openssh-server
204
164
echo
205
165
menuprompt
206
-
207
- continue
208
166
209
167
# # 2. Configure remote host variables
210
168
224
182
if [ " $PORTVAR " = " " ] || [[ ! " $PORTVAR " =~ ^-? [0-9]+$ ]];
225
183
then
226
184
echo " " $R " Please enter a number" $D " ."
227
- continue
228
185
fi
229
- break
230
186
done
231
187
# IP
232
188
while [[ $IPVAR = " " ]] || [[ ! $IPVAR =~ ^-? [0-9.]+$ ]];
235
191
if [ " $IPVAR " = " " ] || [[ ! " $IPVAR " =~ ^-? [0-9.]+$ ]];
236
192
then
237
193
echo " " $R " Please enter an ip (x.x.x.x)" $D " ."
238
- continue
239
194
fi
240
- break
241
195
done
242
196
# Username
243
197
while [[ $USERVAR = " " ]] || [[ $USERVAR = * [[:space:]]* ]];
246
200
if [ " $USERVAR " = " " ] || [[ " $USERVAR " = * [[:space:]]* ]];
247
201
then
248
202
echo " " $R " Please enter a username without spaces" $D " ."
249
- continue
250
203
fi
251
- break
252
204
done
253
205
# Hostname
254
206
while [[ $HOSTVAR = " " ]] || [[ $HOSTVAR = * [[:space:]]* ]];
257
209
if [ " $HOSTVAR " = " " ] || [[ " $HOSTVAR " = * [[:space:]]* ]];
258
210
then
259
211
echo " " $R " Please enter a hostname without spaces" $D " ."
260
- continue
261
212
fi
262
- break
263
213
done
264
214
echo
265
215
sleep 0.5
266
216
echo " " $G " Configured!" $D " "
267
217
echo
268
218
menuprompt
269
-
270
- continue
271
-
219
+
272
220
# # 3. Setup & send ssh keys to remote host
273
221
274
222
elif [ $ANS = 3 ];
277
225
clear
278
226
border " Setup & Send SSH Keys"
279
227
echo
280
- # First check to see if ~/.ssh exists. Create it if it doesn't. Function
281
- sshcheckandcreate
282
- cd $HOME /.ssh
283
- # Check to see if remote host variables are set
284
- remotevarcheck
285
- echo
286
- proceedprompt
287
- echo
288
- echo " " $G " Creating" $D " keys " $C " $HOSTVAR " $D " & " $C " $HOSTVAR .pub" $D " at ~/.ssh/. An empty passphrase stores keys in plain text."
289
- echo
290
- sleep 0.5
291
- ssh-keygen -f $HOSTVAR ;
292
- echo
293
- sleep 0.5
294
- echo " " $G " Created!" $D " "
295
- echo
296
- sleep 0.7
297
- echo " Attempting to send keys to " $C " $IPVAR " $D " on ssh port " $C " $PORTVAR " $D " with username " $C " $USERVAR " $D " ."
298
- echo
299
- echo " " $P " Note" $D " : If this is your first time logging in to " $C " $HOSTVAR " $D " , you'll need to respond 'yes' to add its" \
300
- " fingerprint to your ~/.ssh/known_hosts file. You'll need to provide ssh with " $C " $USERVAR " $D " 's password on " $C " $IPVAR " $D " ."
301
- echo
302
- sleep 0.7
303
- proceedprompt
304
- echo
305
- ssh-copy-id -i $HOSTVAR .pub -p $PORTVAR $USERVAR @$IPVAR
306
- sleep 0.7
307
- echo " " $G " Keys transferred!" $D " "
308
- echo
309
- sleep 0.7
310
- echo " " $P " Note" $D " : Passwordless login via rsa keys won't work until you run option 4 (add ~/.ssh/config entry)."
311
- echo
312
- sleep 0.7
313
- menuprompt
314
-
315
- continue
316
-
228
+ # First check to see if ~/.ssh exists. Create and continue if user agrees
229
+ SSHDIRVAR=y
230
+ while [ " $SSHDIRVAR " = " y" -o " $SSHDIRVAR " = " Y" ];
231
+ do
232
+ if [ ! -d $HOME /.ssh ];
233
+ then
234
+ read -p " " $C " $HOME /.ssh" $D " " $R " does not exist" $D " . This is where our ssh keys and config file should be stored. Create it now? [y/n]: " SSHDIRVAR
235
+
236
+ if [ " $SSHDIRVAR " = " y" -o " $SSHDIRVAR " = " Y" ];
237
+ then
238
+ echo
239
+ echo " Attempting to backup $HOME /.ssh as sshbak to your home folder just in case. ignore the error this will produce, as" \
240
+ " it means $HOME /.ssh doesn't exist, and we're clear to create it."
241
+ echo
242
+ sleep 1
243
+ cp -r $HOME /.ssh $HOME /sshbak
244
+ echo
245
+ sleep 1
246
+ echo " " $C " Creating" $D " $HOME /.ssh..."
247
+ echo
248
+ sleep 1
249
+ mkdir $HOME /.ssh
250
+ echo " " $G " Created" $D " ! Continuing..."
251
+ sleep 0.5
252
+
253
+ elif [ " $SSHDIRVAR " = " n" -o " $SSHDIRVAR " = " N" ];
254
+ then
255
+ echo
256
+ echo " " $R " Not creating" $D " . This tool requires ~/.ssh/ to exist."
257
+ echo
258
+ echo " Returning..."
259
+ echo
260
+ sleep 2
261
+ else
262
+ SSHDIRVAR=y
263
+
264
+ fi
265
+ elif [ -d $HOME /.ssh ];
266
+ then
267
+ # Continue with key creation
268
+ cd $HOME /.ssh
269
+ # Check to see if remote host variables are set
270
+ remotevarcheck
271
+ echo
272
+ proceedprompt
273
+ echo
274
+ echo " " $G " Creating" $D " keys " $C " $HOSTVAR " $D " & " $C " $HOSTVAR .pub" $D " at ~/.ssh/. An empty passphrase stores keys in plain text."
275
+ echo
276
+ sleep 0.5
277
+ ssh-keygen -f $HOSTVAR ;
278
+ echo
279
+ sleep 0.5
280
+ echo " " $G " Created!" $D " "
281
+ echo
282
+ sleep 0.7
283
+ echo " Attempting to send keys to " $C " $IPVAR " $D " on ssh port " $C " $PORTVAR " $D " with username " $C " $USERVAR " $D " ."
284
+ echo
285
+ echo " " $P " Note" $D " : If this is your first time logging in to " $C " $HOSTVAR " $D " , you'll need to respond 'yes' to add its" \
286
+ " fingerprint to your ~/.ssh/known_hosts file. You'll need to provide ssh with " $C " $USERVAR " $D " 's password on " $C " $IPVAR " $D " ."
287
+ echo
288
+ sleep 0.7
289
+ proceedprompt
290
+ echo
291
+ ssh-copy-id -i $HOSTVAR .pub -p $PORTVAR $USERVAR @$IPVAR
292
+ sleep 0.7
293
+ echo " " $G " Keys transferred!" $D " "
294
+ echo
295
+ sleep 0.7
296
+ echo " " $P " Note" $D " : Passwordless login via rsa keys won't work until you run option 4 (add ~/.ssh/config entry)."
297
+ echo
298
+ sleep 0.7
299
+ menuprompt
300
+ break
301
+ fi
302
+ done
303
+
317
304
# # 4. Add remote host entry to ~/.ssh/config
318
305
319
306
elif [ $ANS = 4 ];
359
346
echo
360
347
sleep 0.7
361
348
menuprompt
362
-
363
- continue
364
-
349
+
365
350
# # 5. Add remote host entry to /etc/hosts
366
351
367
352
elif [ $ANS = 5 ];
408
393
echo
409
394
sleep 0.7
410
395
menuprompt
411
-
412
- continue
413
396
414
397
# # 6. Quitting
415
398
424
407
echo
425
408
echo " $R " Invalid selection. Returning..." $D "
426
409
echo
427
- sleep 0.7
428
- continue
410
+ sleep 0.7
429
411
fi
430
- break
431
412
done
0 commit comments