Normally you would prefer to use your public ssh key for login into a remote linux machine.
I created a script to perform the basic steps for inserting your public key into the hosts authorized_keys files.
The script looks like this:
#!/bin/bash HOST=$1; echo ">> setup your ssh keys for $HOST" echo "" echo ">> creating ssh keys on $HOST if necessary" echo "(you need to enter your password)" echo "" ssh $HOST 'if [ ! -d ~/.ssh ] ; then ssh-keygen -t rsa; fi' echo "" PUBKEY=`cat ~/.ssh/id_dsa.pub` echo "==========================================================" echo "your id_dsa.pub:" echo "$PUBKEY" echo "==========================================================" echo "" echo ">> transfering your public ssh key" scp ~/.ssh/authorized_keys $HOST:~/.ssh/authorized_keys ssh $HOST 'chmod 600 ~/.ssh/authorized_keys' echo "" echo ">> login with your public key" echo "(should work without a password)" ssh $HOST
A typical run might look like this:
imotep:~ philipp$ setupssh firstname.lastname@example.org >> setup your ssh keys for email@example.com >> creating ssh keys on firstname.lastname@example.org if necessary (you need to enter your password) The authenticity of host '192.168.178.55 (192.168.178.55)' can't be established. RSA key fingerprint is ... Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.178.55' (RSA) to the list of known hosts. email@example.com's password: Enter file in which to save the key (/home/philipp/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Generating public/private rsa key pair. Created directory '/home/philipp/.ssh'. Your identification has been saved in /home/philipp/.ssh/id_rsa. Your public key has been saved in /home/philipp/.ssh/id_rsa.pub. The key fingerprint is: ... philipp@debian The key's randomart image is: +--[ RSA 2048]----+ |... | +-----------------+ ========================================================== your id_dsa.pub: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx......xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ========================================================== >> transfering your public ssh key firstname.lastname@example.org's password: authorized_keys 100% 610 0.6KB/s 00:00 >> login with your public key (should work without a password) Linux debian 2.6.26-2-amd64 #1 SMP Thu Nov 25 04:30:55 UTC 2010 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sun Jan 23 17:31:16 2011 from imotep.fritz.box philipp@debian:~$
2 thoughts on “setup your public SSH key to another UNIX Host”
Is there any difference to ssh-copy-id ?
If so what ?
i did not now ssh-copy-id yet. I guess a difference would be that above script works also with other unices besides linux :-).