SSH-avainautentikointi ilman salasanaa

Tämä on yksinkertaistettu ohje SSH-avainautentikointiin laitoksella (ja missä tahansa muuallakin).

Yleisin käyttötapaus kirjautuminen ilman salasanaa. Jotta kirjautuminen onnistuisi, tarvitsee ensin luoda julkinen (public) ja salainen (private) avain. Sitten julkinen avain kopioidaan kohdekoneelle ja varmistetaan, että tiedosto-oikeudet ovat sekä hakemistoissa, että tiedostoissa oikein "lähdekoneella" ja kohdekoneella.

Avainparin luonti

  1. Anna koneella, josta haluat kirjautua komento: ssh-keygen
  2. Kannattaa varmistaa .ssh -hakemiston ja avainten oikeudet.

Julkisen avaimen kopiointi

  1. Kopioi .ssh/id_rsa.pub kohdekoneelle tiedostoon .ssh/authorized_keys.
  2. Varmista oikeudet samalla tavalla, kuten aikaisemmassa kohdassa .ssh -hakemistolle ja .ssh/authorized_keys -tiedostolle

Kokeile

Nyt kirjautumisen pitäisi onnistua avaimella.

SSH-agent

Jokaisen avaimen salasanaa ei tarvitse aina kirjoittaa uudestaan jokaisella käyttökerralla, jos käytössä on ne erikseen muistava softa. Laitoksen Linux-ympäristössä on olemassa ssh-agent -niminen ohjelma, jota voi käyttää tehtävään. Käytännössä aina koneelle kirjauduttaessa lisätään jokainen käytettävä SSH-avain agenttiin komentamalla ssh-add .ssh/yksityinen_avain ja sen jälkeen tämä avain toimii kyseisen istunnon ajan ilman salasanan kirjoittamista, kuten salasanaton avain.

Bonus

Tiedostolla .ssh/config saadaan kirjautuminen vielä joustavammaksi. Tiedostolla voi määritellä mm. mitä avainta tai käyttäjätunnusta millekkin koneelle käytetään. Tiedostossa voidaan määritellä esimerkiksi seuraavasti:

Host kohdekone
       HostName kone.cs.helsinki.fi
       User käyttäjätunnus
       IdentityFile .ssh/yksityinen_avain

Eli komennolla ssh kohdekone kirjaudutaan koneelle kone.cs.helsinki.fi käyttäen käyttäjätunnusta käyttäjätunnus ja avainta .ssh/yksityinen_avain

Parempia esimerkkejä .ssh/config käytöstä

Käyttäen oletusavainta .ssh/rsa_id

Host db
       HostName db.cs.helsinki.fi
       User paksula

Käyttäen käyttäjätunnusta tkt_ryhm ja avainta .ssh/tkt_ryhm_id. Yhteys luodaan komennolla ssh db_ryhm.

Host db_ryhm
       HostName db.cs.helsinki.fi
       User tkt_ryhm
       IdentityFile .ssh/tkt_ryhm_id