torstaina, elokuuta 02, 2007

SSH-yhteys ilman salasanaa

SSH on turvallinen tapa ottaa yhteys koneelta toiselle ja Linux maailmassa törmää lähes joka päivä SSH-yhteyksien käyttämiseen. Joskus on kuitenkin kätevää, jos etäkoneelle voi ottaa yhteyden turvallisesti kirjoittamatta salasanaa. Tälläisia tilanteita voisi olla esimerkiksi erilaiset scriptit, jotka käyttävät SSH-yhteyttä tai laiskuus eli ei vaan yksinkertaisesti jaksa kirjoittaa salasanaa aina uudestaan.

Idea perustuu siihen, että ensin luodaan avainpari, joista julkinen osa siirretään etäkoneelle/etäkoneille ja yksityinen osa jätetään omalle koneelle. Tässä esimerkissä käytetään DSA-avainta, mutta sama ohje toimii myös RSA-avaimen kanssa, jolloin kaikki ohjeen dsa kohdat muutetaan rsa:ksi.

Ensin tehdään .ssh hakemisto, jos sitä ei ole olemassa seuraavalla komennolla:

mkdir -p ~/.ssh


Suojataan hakemisto muilta koneen käyttäjiltä komennolla:
chmod 0700 -R ~/.ssh


Sitten luodaan avaimet seuraavalla komennolla:
ssh-keygen -t dsa -f ~/.ssh/id_dsa


Komennon suorittamisen jälkeen kysytään salasanaa, joka on syytä antaa.

Salasanan kirjoittamisen jälkeen .ssh hakemistosta pitäisi löytyä seuraavat tiedostot:
id_dsa (yksityinen avain)
id_dsa.pub (julkinen avain)


Sen jälkeen julkinen avain kopioidaan palvelinkoneelle, vaikka seuraavalla komennolla:
scp ~/.ssh/id_dsa.pub kayttaja@palvelin:/kayttajan/hakemisto/


Kirjaudutaan palvelimelle komennolla:
ssh kayttaja@palvelin


Luodaan .ssh hakemisto myös palvelimelle, jos sitä sieltä ei löydy komennolla:
mkdir -p ~/.ssh


Suojataan myös palvelimen hakemisto muilta käyttäjiltä komennolla:
chmod 0600 -R ~/.ssh


Palvelimella julkinen avain lisätään ~/.ssh/authorized_keys2 tiedostoon seuraavalla komennolla:
cat id_dsa.pub >> ~/.ssh/authorized_keys2


Joissain versioissa tarvitaan myös ~/.ssh/authorized_keys tiedosto. Avaimen lisääminen tiedostoon onnistuu lähes samalla komennolla, kuin edellä:
cat id_dsa.pub >> ~/.ssh/authorized_keys


Tämän jälkeen yhteys pitäisi toimia ilman salasanaa yksityisen ja julkisen avaimen avulla, yksinkertaisesti komennolla:
ssh palvelin


Huom! Sama julkinen avain voidaan kopioida monelle palvelimelle jos niin halutaan.
Kannattaa kuitenkin muistaa, että pääkäyttäjä(t) pääsee käsiksi tiedostoihin, jotka on suojattuja muilta käyttäjiltä.

kommentit (0):