Bladeren bron

Enable or disable ssh password logins

Bob Mottram 10 jaren geleden
bovenliggende
commit
f790606705
1 gewijzigde bestanden met toevoegingen van 23 en 0 verwijderingen
  1. 23
    0
      src/freedombone-sec

+ 23
- 0
src/freedombone-sec Bestand weergeven

@@ -34,6 +34,7 @@ SSH_CIPHERS=
34 34
 SSH_MACS=
35 35
 SSH_KEX=
36 36
 SSH_HOST_KEY_ALGORITHMS=
37
+SSH_PASSWORDS=
37 38
 XMPP_CIPHERS=
38 39
 XMPP_ECC_CURVE=
39 40
 
@@ -105,6 +106,7 @@ function get_ssh_settings {
105 106
       SSH_CIPHERS=$(cat $SSH_CONFIG | grep 'Ciphers ' | awk -F 'Ciphers ' '{print $2}')
106 107
       SSH_MACS=$(cat $SSH_CONFIG | grep 'MACs ' | awk -F 'MACs ' '{print $2}')
107 108
       SSH_KEX=$(cat $SSH_CONFIG | grep 'KexAlgorithms ' | awk -F 'KexAlgorithms ' '{print $2}')
109
+      SSH_PASSWORDS=$(cat $SSH_CONFIG | grep 'PasswordAuthentication ' | awk -F 'PasswordAuthentication ' '{print $2}')
108 110
   fi
109 111
   if [ -f /etc/ssh/ssh_config ]; then
110 112
       SSH_HOST_KEY_ALGORITHMS=$(cat /etc/ssh/ssh_config | grep 'HostKeyAlgorithms ' | awk -F 'HostKeyAlgorithms ' '{print $2}')
@@ -175,10 +177,14 @@ function change_ssh_settings {
175 177
       if [ ! $SSH_KEX ]; then
176 178
           return
177 179
       fi
180
+      if [ ! $SSH_PASSWORDS ]; then
181
+          return
182
+      fi
178 183
 
179 184
       sed -i "s|Ciphers .*|Ciphers $SSH_CIPHERS|g" $SSH_CONFIG
180 185
       sed -i "s|MACs .*|MACs $SSH_MACS|g" $SSH_CONFIG
181 186
       sed -i "s|KexAlgorithms .*|KexAlgorithms $SSH_KEX|g" $SSH_CONFIG
187
+      sed -i "s|PasswordAuthentication .*|PasswordAuthentication $SSH_PASSWORDS|g" $SSH_CONFIG
182 188
       service ssh restart
183 189
       echo 'ssh server security settings changed'
184 190
   fi
@@ -254,6 +260,23 @@ function interactive_setup {
254 260
       esac
255 261
   fi
256 262
 
263
+  if [[ $SSH_PASSWORDS == "yes" ]]; then
264
+      dialog --title "SSH Passwords" \
265
+          --backtitle "Freedombone Security Configuration" \
266
+          --yesno "\nAllow SSH login using passwords?" 7 60
267
+  else
268
+      dialog --title "SSH Passwords" \
269
+          --backtitle "Freedombone Security Configuration" \
270
+          --defaultno \
271
+          --yesno "\nAllow SSH login using passwords?" 7 60
272
+  fi
273
+  sel=$?
274
+  case $sel in
275
+      0) SSH_PASSWORDS="yes";;
276
+      1) SSH_PASSWORDS="no";;
277
+      255) exit 0;;
278
+  esac
279
+
257 280
   if [ $XMPP_CIPHERS ]; then
258 281
       data=$(tempfile 2>/dev/null)
259 282
       trap "rm -f $data" 0 1 2 5 15