Explorar el Código

Check for ssh public key

Bob Mottram hace 9 años
padre
commit
1713d292d1
Se han modificado 1 ficheros con 13 adiciones y 11 borrados
  1. 13
    11
      src/freedombone-adduser

+ 13
- 11
src/freedombone-adduser Ver fichero

@@ -1,6 +1,6 @@
1 1
 #!/bin/bash
2 2
 MY_USERNAME=$1
3
-SSH_PUBLIC_KEY=$2
3
+SSH_PUBLIC_KEY="$2"
4 4
 GPG_KEYSERVER='hkp://keys.gnupg.net'
5 5
 SSH_PORT=2222
6 6
 COMPLETION_FILE=$HOME/freedombone-completed.txt
@@ -30,19 +30,21 @@ if [ ! -d /home/$MY_USERNAME ]; then
30 30
     exit 4
31 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 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 38
             echo 'ssh public key installed'
43 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 48
         fi
47 49
     fi
48 50
 fi