SSH ilman salasanaa

Kuten nähtiin, ssh:ta käytetään todella usein, ja salasanan kirjoittaminen yhä uudelleen yhteyttä muodostettaessa voi olla rasittavaa. Toinen syy jättää salasana kirjoittamatta on, jos ssh-yhteyttä käytetään komentoriviskriptistä (teen niin esimerkiksi kerätessäni tietoa tiedostojeni varmuuskopioiden tilasta).

Kahden koneen ”tutustuttaminen” on melko suoraviivaista. Löysin hyvän ohjeen täältä, ja alla oleva esimerkki on sieltä. Oletetaan, että haluat käyttäjänä ”a” koneella ”A” (A on yleensä IP-osoite kuten 192.168.1.100 tai osoite kuten ”myserver.danielfischer.name”) rekisteröidä käyttäjän ”b” (etäkoneella voi olla eri käyttäjätunnus, eli a!=b) koneelle ”B” (myös B on joko IP tai osoite).

Kirjaudu ensin koneelle A käyttäjänä a ja luo tunnistautumisavainpari. Älä anna salalausetta:

a@A:~> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/a/.ssh/id_rsa):
Created directory '/home/a/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/a/.ssh/id_rsa.
Your public key has been saved in /home/a/.ssh/id_rsa.pub.
The key fingerprint is:
3e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 a@A

 

Luo sitten ssh:n avulla käyttäjänä b koneelle B hakemisto ~/.ssh, b:n kotihakemistoon, siksi ”~”. (Hakemisto voi olla jo olemassa, se ei haittaa):

a@A:~> ssh b@B mkdir -p .ssh
b@B's password:

 

Lisää lopuksi a:n uusi julkinen avain tiedostoon b@B:.ssh/authorized_keys ja anna b:n salasana viimeisen kerran:

a@A:~> cat ~/.ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'
b@B's password:

Muuta ei tarvita, jotta voit kirjautua koneelta ”A” käyttäjänä ”a” koneelle ”B” käyttäjänä ”b” ilman salasanaa:

a@A:~> ssh b@B

 

Lähde: http://www.linuxproblem.org/art_9.html