Tämä artikkeli kertoo kuinka voit automatisoida SSH kirjautumisen niin, että sinun ei tarvitse kirjoittaa salasanaa joka kerta kun otat yhteyden SSH:lla. Esimerkissä on käytössä Linuxin Xubuntu 12.04 versio. Tarkemmat konetiedot näet täältä. Artikkelin alussa käyn läpi SSH:n kirjautumisen yhdellä käyttäjälle ja lopussa lisätään muutama käyttäjä lisää.
SSH avaimen luominen
Aluksi meidän tulee luoda avain, jonka voimme jakaa koneelle, johon haluamme olla yhteydessä. Tämä onnistuu komennolla
xubuntu@xubuntu:~$ ssh-keygen -t dsa
Kun olemme antaneet komennon tulee seuraava ilmoitus:
Generating public/private dsa key pair.
Enter file in which to save the key (/home/xubuntu/.ssh/id_dsa):
Created directory ’/home/xubuntu/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/xubuntu/.ssh/id_dsa.
Your public key has been saved in /home/xubuntu/.ssh/id_dsa.pub.
The key fingerprint is:
0c:80:79:fb:f2:80:3b:df:e4:8d:4d:83:be:17:59:b8 xubuntu@xubuntu
The key’s randomart image is:
+–[ DSA 1024]—-+
| o. |
| o .. |
| . .. . |
| . o. . |
| . . S+ |
| . o ..E |
| . +o o. |
| o =.=.. |
| o. *oo |
+—————–+
xubuntu@xubuntu:~$
Aluksi käyttäjältä kysytään mihin kansioon hän haluaa luoda SSH avainparin. Tähän kotikansio on helppo ja turvallinen paikka. On tärkeää, että kukaan muu ei pääse käsiksi kyseiseen kansioon ja tiedostoihin. Seuraavaksi kysytään salasanaa (Passphrase) johon voit painaa enteriä, jolloin yhdistäessäsi SSH:lla sinulta ei tulla kysymään salasanaa. Nyt SSH-avaimen luonti on valmis. Seuraavaksi onkin aika yhdistää SSH palvelimelle. Jos sinulla ei vielä ole SSH palvelinta, katso kuinka openssh-server asennetaan
SSH-palvelimeen yhdistäminen
SSH-palvelimeen yhdistäminen tapahtuu komennolla ssh käyttäjänimi@osoite
xubuntu@xubuntu:~$ ssh xubuntu@localhost
The authenticity of host ’localhost (127.0.0.1)’ can’t be established.
ECDSA key fingerprint is 8c:14:cc:7a:b2:9a:ee:38:ea:45:8b:c3:af:85:a4:50.
Are you sure you want to continue connecting (yes/no)?
Warning: Permanently added ’localhost’ (ECDSA) to the list of known hosts.
xubuntu@localhost’s password:
Nyt olemme kirjautuneet sisälle. Seuraavaksi meidän tulee kopioida salausavaimemme julkinen osa palvelimelle. Tämä tapahtuu seuraavasti:
xubuntu@xubuntu:~$ ssh-copy-id -i ~/.ssh/id_dsa.pub localhost
xubuntu@localhost’s password:
Now try logging into the machine, with ”ssh ’localhost'”, and check in:~/.ssh/authorized_keys
to make sure we haven’t added extra keys that you weren’t expecting.
Nyt olemme siirtänee avaimen onnistuneesti palvelimelle. Seuraavaksi meidän tulee kirjautua ulos ja tarkistaa, että automaattinen kirjautuminen toimii.
xubuntu@xubuntu:~$ logout
Connection to localhost closed.
xubuntu@xubuntu:~$ ssh localhost
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic i686)* Documentation: https://help.ubuntu.com/
Last login: Tue Sep 18 13:39:47 2012 from localhost
xubuntu@xubuntu:~$
Ja nyt olemme onnistuneesti luoneet Automaattisen kirjautumisen SSH yhteydellä.
SSH yhteys usealla käyttäjällä ja komennon antaminen
Nyt olemme onistuneesti saaneet yhden käyttäjän automatisoitua. Seurvaaksi kirjaudumme toisella tunnuksella ja annamme uudestaan komennon:
ssh-copy-id -i ~/.ssh/id_dsa.pub localhost
Kun olet luonut riittävästi useita eri käyttäjiä, tulee vastaan kysymys: kuinka antaa komentoja kaikille samaan aikaan ? Itse ratkaisin ongelman tekemällä yksinkertaisen scriptin ja tallensin sen omalle koneelleni nimellä komento.sh :
#!/bin/bash
komento=”mkdir testfolder”
ssh petri@localhost $komento
ssh xubuntu@localhost $komento
Nyt scripti ajattaessa komennolla ” bash komento.sh ” tekee kansion testifolder komennolla mkdir. Listassa voisi olla myös useampi yhteyksiä ja siihen on helppo vaihtaa komento. Mikään yhteys ei kysy salasanaa, koska kaikkiin on automaattinen SSH-kirjautuminen
Tämä artikkeli tehtiin 18. syyskuuta 2012 klo 13-15 välisenä aikana
Lähteet:
Tero karvinen (http://terokarvinen.com/) / Oppitunnit 12.09.2012