26Jan/100
SSH Key – Public Key Authentication
Ich habe das alte Script auf der Seite durch dieses ersetzt. Was macht das Script genau ?
Es kopiert den SSH-Key auf ein anderes System um einen SSH-Login ohne Passworteingabe zu ermöglichen. Ist oft für Script wie Nagios, Backups usw. nötig.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | #!/bin/bash # kumar.mcmillan -at- farmdev.com function usage() { echo "" echo "Authorizes a host for automatic SSH use by sending your key to the remote host ..." echo "Usage: $0 remote_host_to_authorize [username:=defaults to current username]" echo "" } function cleanup() { if [ -f $TEMP_PUB_KEY_XFER ] then rm $TEMP_PUB_KEY_XFER fi } function exit_on_error() { cleanup exit 1 } if [ $# -lt 1 -o "$1" = "-h" -o "$1" = "--help" ] then usage exit 0 fi PUB_KEY=~/.ssh/id_dsa.pub if [ $# -eq 2 ]; then USER=$2 else USER=`whoami` fi HOST_TO_AUTH=$1 TEMP_PUB_KEY_XFER=/tmp/$USER"_TEMP_KEY" echo "checking for $PUB_KEY ..." if [ ! -f $PUB_KEY ]; then echo "generating your dsa public key (leave passphrase blank and save to $PUB_KEY when prompted) ..." ssh-keygen -t dsa if [ $? -ne 0 ]; then echo "ssh-keygen failed" exit_on_error fi fi echo "OK" echo "for the following commands you will be asked to supply your password for $HOST_TO_AUTH :" echo "copying a temp pub key to $HOST_TO_AUTH ..." cat $PUB_KEY > $TEMP_PUB_KEY_XFER chmod 700 $TEMP_PUB_KEY_XFER echo "OK" remote_key=`basename $TEMP_PUB_KEY_XFER` scp $TEMP_PUB_KEY_XFER $USER@$HOST_TO_AUTH:~/$remote_key if [ $? -ne 0 ]; then echo "scp failed" exit_on_error fi echo "authorizing $HOST_TO_AUTH for automatic SSH use ..." ssh $USER@$HOST_TO_AUTH "cat ~/$remote_key >> ~/.ssh/authorized_keys; rm ~/$remote_key" if [ $? -ne 0 ]; then echo "ssh failed" exit_on_error fi echo "OK" cleanup echo "authorization successful! you can now login automatically to $HOST_TO_AUTH" exit 0 |
