Difference between revisions of "SSH - Client and Server"
From Blue-IT.org Wiki
(→Download) |
(→Source Code) |
||
Line 11: | Line 11: | ||
#!/bin/bash | #!/bin/bash | ||
# | # | ||
− | + | # This scripts exports THIS computers public ssh key to | |
− | + | # a clients's ~/.ssh/authorized_keys2 file. | |
− | + | # | |
− | a clients's ~/.ssh/authorized_keys2 file. | + | # This will enable passworless login from THIS pc to the client. |
− | + | # | |
− | This will enable passworless login from THIS pc to the client. | + | # You need to have the password, username and IP/alias of the other pc. |
− | |||
− | You need to | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
client="$1" | client="$1" | ||
NAME="$2" | NAME="$2" | ||
− | |||
[ "$NAME" ] || NAME="${USER}" | [ "$NAME" ] || NAME="${USER}" | ||
Line 36: | Line 27: | ||
cd ~/.ssh | cd ~/.ssh | ||
− | echo | + | echo "Create ssh dir on client ... " |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
ssh ${NAME}@$client "mkdir -p ~/.ssh; chmod 700 ~/.ssh" | ssh ${NAME}@$client "mkdir -p ~/.ssh; chmod 700 ~/.ssh" | ||
− | echo " | + | echo "Check if pub key exist and/or create one ... " |
− | + | [ -e id_dsa.pub ] || ssh-keygen -t dsa | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | echo " | + | echo "Copy the public key of THIS pc to the client ... " |
scp id_dsa.pub ${NAME}@$client:~/.ssh/id_dsa.pub_${HOSTNAME} | scp id_dsa.pub ${NAME}@$client:~/.ssh/id_dsa.pub_${HOSTNAME} | ||
− | echo " | + | echo "We make an entry into the authorized_keys file on the client ... " |
− | ssh ${NAME}@$client "cat ~/.ssh/id_dsa.pub_${HOSTNAME} >> ~/.ssh/authorized_keys2; \ | + | ssh ${NAME}@$client "cat ~/.ssh/id_dsa.pub_${HOSTNAME} \ |
− | rm ~/.ssh/id_dsa.pub_${HOSTNAME} | + | >> ~/.ssh/authorized_keys2; \ |
+ | rm ~/.ssh/id_dsa.pub_${HOSTNAME}" | ||
− | echo " | + | echo "Secure the local public key ... " |
chmod 600 id_dsa.pub | chmod 600 id_dsa.pub | ||
+ | echo TEST: | ||
+ | echo Now we test with running the following terminal command: | ||
+ | echo " ssh ${NAME}@$client echo Congratulation: You can login passwordless to your client $client." | ||
echo ; | echo ; | ||
− | + | ssh ${NAME}@$client "echo Congratulation: You can login passwordless to your client $client." | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
echo ; | echo ; | ||
echo ; | echo ; | ||
− | echo | + | echo Program ended. |
echo ; | echo ; | ||
echo If you like to remove the automatic login, you have to | echo If you like to remove the automatic login, you have to | ||
echo remove the public key in the file /home/${NAME}/.ssh/authorized_keys2 | echo remove the public key in the file /home/${NAME}/.ssh/authorized_keys2 | ||
echo on your clients - $client - computer. | echo on your clients - $client - computer. |
Revision as of 18:12, 22 June 2008
A little script to enable passwordless login
Needless to say, that using this script you should exactly know what you are doing.
!! The author takes NO response for all kinds of damage and security issues that could happen using this script !!
Download
Source Code
#!/bin/bash # # This scripts exports THIS computers public ssh key to # a clients's ~/.ssh/authorized_keys2 file. # # This will enable passworless login from THIS pc to the client. # # You need to have the password, username and IP/alias of the other pc. client="$1" NAME="$2" [ "$NAME" ] || NAME="${USER}" [ "$client" ] || echo "ERROR: You have to specify at least a client IP or alias." [ "$client" ] || exit 1 cd ~/.ssh echo "Create ssh dir on client ... " ssh ${NAME}@$client "mkdir -p ~/.ssh; chmod 700 ~/.ssh" echo "Check if pub key exist and/or create one ... " [ -e id_dsa.pub ] || ssh-keygen -t dsa echo "Copy the public key of THIS pc to the client ... " scp id_dsa.pub ${NAME}@$client:~/.ssh/id_dsa.pub_${HOSTNAME} echo "We make an entry into the authorized_keys file on the client ... " ssh ${NAME}@$client "cat ~/.ssh/id_dsa.pub_${HOSTNAME} \ >> ~/.ssh/authorized_keys2; \ rm ~/.ssh/id_dsa.pub_${HOSTNAME}" echo "Secure the local public key ... " chmod 600 id_dsa.pub echo TEST: echo Now we test with running the following terminal command: echo " ssh ${NAME}@$client echo Congratulation: You can login passwordless to your client $client." echo ; ssh ${NAME}@$client "echo Congratulation: You can login passwordless to your client $client." echo ; echo ; echo Program ended. echo ; echo If you like to remove the automatic login, you have to echo remove the public key in the file /home/${NAME}/.ssh/authorized_keys2 echo on your clients - $client - computer.