Przeglądaj źródła

Check for ssh public key

Bob Mottram 9 lat temu
rodzic
commit
1713d292d1
1 zmienionych plików z 13 dodań i 11 usunięć
  1. 13
    11
      src/freedombone-adduser

+ 13
- 11
src/freedombone-adduser Wyświetl plik

1
 #!/bin/bash
1
 #!/bin/bash
2
 MY_USERNAME=$1
2
 MY_USERNAME=$1
3
-SSH_PUBLIC_KEY=$2
3
+SSH_PUBLIC_KEY="$2"
4
 GPG_KEYSERVER='hkp://keys.gnupg.net'
4
 GPG_KEYSERVER='hkp://keys.gnupg.net'
5
 SSH_PORT=2222
5
 SSH_PORT=2222
6
 COMPLETION_FILE=$HOME/freedombone-completed.txt
6
 COMPLETION_FILE=$HOME/freedombone-completed.txt
30
     exit 4
30
     exit 4
31
 fi
31
 fi
32
 
32
 
33
-if [ $2 ]; then
34
-    if [ -f $SSH_PUBLIC_KEY ]; then
35
-        mkdir /home/$MY_USERNAME/.ssh
36
-        cp $SSH_PUBLIC_KEY /home/$MY_USERNAME/.ssh/authorized_keys
37
-        echo 'ssh public key installed'
38
-    else
39
-        if [[ $SSH_PUBLIC_KEY == "ssh-"* ]]; then
33
+if [ "$SSH_PUBLIC_KEY" ]; then
34
+    if [ ${#SSH_PUBLIC_KEY} -gt 5 ]; then
35
+        if [ -f $SSH_PUBLIC_KEY ]; then
40
             mkdir /home/$MY_USERNAME/.ssh
36
             mkdir /home/$MY_USERNAME/.ssh
41
-            echo $SSH_PUBLIC_KEY > /home/$MY_USERNAME/.ssh/authorized_keys
37
+            cp $SSH_PUBLIC_KEY /home/$MY_USERNAME/.ssh/authorized_keys
42
             echo 'ssh public key installed'
38
             echo 'ssh public key installed'
43
         else
39
         else
44
-            echo 'The second parameter does not look like an ssh key'
45
-            exit 5
40
+            if [[ $SSH_PUBLIC_KEY == "ssh-"* ]]; then
41
+                mkdir /home/$MY_USERNAME/.ssh
42
+                echo $SSH_PUBLIC_KEY > /home/$MY_USERNAME/.ssh/authorized_keys
43
+                echo 'ssh public key installed'
44
+            else
45
+                echo 'The second parameter does not look like an ssh key'
46
+                exit 5
47
+            fi
46
         fi
48
         fi
47
     fi
49
     fi
48
 fi
50
 fi