Differences between revisions 34 and 48 (spanning 14 versions)
Revision 34 as of 2007-08-17 21:19:40
Size: 7030
Editor: Epeli
Comment:
Revision 48 as of 2011-09-20 05:28:13
Size: 9498
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= SSH ja SFTP-palvelimen asennus =
SSH:hän on tietoturvaltaan erittäin hyvä tapa ottaa etäyhteyksiä. SFTP puolestaan on tarkoitettu tiedonsiirtoon aivan kuten FTP, mutta se käyttää yhteyden (ja yhteydenoton) salaamiseen SSH:n tarjoamaan turvaa. tosin myös ssh:iä kannattaa käyttää versiota 2 jonka mukana tuo SFTP:kin tuli, aikaisemman version yhteydessä SFTP:n tilalla käytettiin vähän vähemmän toiminnallisuutta tarjoavaa SCP:ä.
||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Sisällys'''<<BR>><<TableOfContents(3)>>||
= SSH ja SFTP-palvelin =
SSH on tietoturvaltaan erittäin hyvä tapa ottaa etäyhteyksiä telnetin tapaan. Tämän lisäksi se tarjoaa mahdollisuuden käyttää jopa graafisia ohjelmia etänä. Ssh salaa koko yhteyden mukaan lukien yhteydenoton, joten tunnukset ja salasanat pysyvät turvassa. OpenSSH sisältää myös mahdollisuuden SFTP:llä tapahtuvaan tiedostojen siirtoon. Se vastaa täysin FTP:tä, mutta liikenne on salattua ssh-pääteyhteyden tapaan.
Line 5: Line 6:
 1. Avaa pääte ja komenna Avaa pääte ja komenna
Line 9: Line 10:
 SSH-palvelin käynnistyy samalla kuin se asennetaan, joten siihen voi heti yrittää ottaa yhteyttä joko SSH:llä tai SFTP:lla.Nythän kuka tahansa joka näkee koneen ulkoisen IP:n pystyy yrittämään koneelle sisään arvaamalla käyttäjätunnuksen ja salasanan. Ubuntussa ei onneksi ole rootin tiliä aktivoituna, joten siihen kohdistuvat yritykset ovat luonnollisesti turhia. Muutenkin nuo madot yrittävät yleensä arvailla englantilaisia erisnimiä, joten suomalaisilla koneilla niitä ei useinkaan onnista. Olisi kuitenkin mukavaa jos pystyisi määräämään ketkä saavat ottaa koneelle yhteyttä, ja sen toki pystyykin tekemään seuraavasti: SSH-palvelin käynnistyy samalla kuin se asennetaan, joten siihen voi heti yrittää ottaa yhteyttä joko SSH:llä tai SFTP:lla. Nythän kuka tahansa joka näkee koneen ulkoisen IP:n pystyy yrittämään koneelle sisään arvaamalla käyttäjätunnuksen ja salasanan. Ubuntussa ei onneksi ole rootin tiliä aktivoituna, joten siihen kohdistuvat yritykset ovat luonnollisesti turhia. Muutenkin nuo madot yrittävät yleensä arvailla englantilaisia erisnimiä, joten suomalaisilla koneilla niitä ei useinkaan onnista. Olisi kuitenkin mukavaa jos pystyisi määräämään ketkä saavat ottaa koneelle yhteyttä, ja sen toki pystyykin tekemään seuraavasti.
Line 13: Line 14:
 1. etsi kohta '''!PermitRootLogin yes''' ja muuta sen arvoksi '''no'''  1. Etsi kohta '''!PermitRootLogin yes''' ja muuta sen arvoksi '''no'''
Line 15: Line 16:
 1. Halutessasi voit rajoittaa ssh:n käyttöoikeuden tietyille käyttäjille. Lisää tiedoston loppupuolelle rivi joka alkaa avainsanalla '''!AllowUsers''' ja listataan sen perään välilyönnillä erotettuna käyttäjät jotka saavat ottaa koneeseen yhteyden:  1. Voit rajoittaa ssh:n käyttöoikeuden tietyille käyttäjille lisäämällä tiedoston loppupuolelle rivi joka alkaa avainsanalla '''!AllowUsers''' ja listataan sen perään välilyönnillä erotettuna käyttäjät jotka saavat ottaa koneeseen yhteyden
Line 19: Line 20:
 Voit myös rajoittaa joitain käyttäjiä vain tiettyihin ip-osoitteisiin näin koti@10.0.0.3 jolloin käyttäjä koti pääsee vain osoitteesta 10.0.0.3 kirjautumaan. Voit käyttää myös ns. wildcardeja koti@10.0.0.* jolloin vain 10.0.0. -alkuisista osoitteista pääsee sisään. Kätevä esim. lähiverkkoa varten.
Line 25: Line 27:
== Avainten käyttöönotto ==
Avain muodostuu kahdesta osasta, julkisesta ja yksityisestä avaimesta. Julkinen avain sijoitetaan palvelimelle ja yksityinen avain pitää löytyä koneelta, jolta yhteyttä muodostetaan. Julkiset avaimet siis määrittävät palvelimella millä yksityisillä avaimilla voidaan kirjautua sisään.
== Yksityisen ja julkisen avaimen käyttöönotto ==
Yksityisellä ja julkisella avaimella voidaan tiukentaa tietoturva vaatimuksia, jolloin kirjautumiseen tarvitaan vähintään 1024 bittinen avain-tiedosto sekä sitä vastaava salasana. Tai niillä voidaan myös vähentään salasanojen ainaista kirjoittelua (alempana lisää). Käyttäjien täytyy luoda itselleen avaimet joita tulee kaksi kappaletta: '''julkinen''' ja '''yksityinen'''. '''Julkinen''' avain pitää toimittaa palvelimelle johon ollaan kirjautumassa ja yksityinen avain pitää lisätä käyttäjän kotihakemistossa olevaan hakemistoon '''.ssh'''. Julkinen avain siis määrää millä yksityisellä avaimella saa kirjautua sisään.
Line 28: Line 30:
 1. Avaa taas tiedosto '''/etc/ssh/sshd_config''' pääkäyttäjän oikeuksin
Line 30: Line 31:
 1. Etsi kohdat
 {{{
#AuthorizedKeysFile %h/.ssh/authorized_keys
#PasswordAuthentication yes
}}}
 Poista molemmilta riveiltä kommentti (se risuaita siitä alusta).
 Muuta vielä '''passwordAuthentication yes''' arvoksi '''no'''
 1. Tallenna tiedosto ja käynnistä palvelin uudestaan.
Huomaat, että kukaan ei pääse sisään, itse asiassa kukaan ei pääse edes yrittämään salasanan arvaamista. Nyt onkin tosi turvallista, mutta mitenkäs siihen sitten oikein pääsee sisälle... Käyttäjien pitää luoda itselleen avaimet joita tulee kaksi kappaletta, '''julkinen''' ja '''yksityinen'''. '''Julkinen''' avain pitää toimittaa koneelle johon ollaan loggautumassa ja yksityinen avain pitää lisätä käyttäjän kotihakemistossa olevaan hakemistoon '''.ssh''' tiedostoon '''authorized_keys''' aivan kuten tuolla konffissa määrittelimme.
=== Avainparin luominen asiakaskoneella ===
Line 41: Line 34:
 {{{
$ ssh-keygen -t rsa -b 2024
}}}
 Kannattanee hyväksyä tiedostojen oletussijainti '''~/.ssh/id_rsa''' ja '''~/.ssh/id_rsa.pub'''. Noista ensimmäinen eli yksityinen avain tulee siis pitää visusti poissa ulkopuolisten silmistä! Ja jälkimmäinen on se julkinen avain joka toimitetaan palvelimelle. Tuo ohjelma kysyy myös salasanaa joka liitetään avaimeen ja jota käytetään jatkossa avaimen kanssa kirjautuessa (se voi olla eri kuin käyttäjän kohdekoneen salasana).
Line 42: Line 39:
 {{{
$ ssh-keygen -t rsa
}}}
Kannattanee hyväksyä tiedostojen oletussijainti '''~/.ssh/id_rsa''' ja '''~/.ssh/id_rsa.pub'''. Noista ensimmäinen tulee siis pitää visusti poissa ulkopuolisten silmistä! Ja jälkimmäinen on se julkinen avain joka pitää toimittaa palvelimelle. Tuo ohjelma kysyy myös salasanaa joka liitetään avaimeen ja jota käytetään jatkossa avaimen kanssa loggautuessa (se voi olla eri kuin käyttäjän kohdekoneen salasana).
Line 49: Line 42:
 1. Kopioidaan avain palvelimelle  1. Kopioidaan julkinen avain asiakaskoneelta palvelimelle
Line 51: Line 44:
$ scp ~/.ssh/id_rsa.pub tunnus@palvelin:/home/tunnus $ scp ~/.ssh/id_rsa.pub tunnus@palvelin:
Line 63: Line 56:
 Huom. authorized_keys-tiedostossa voi olla useita avaimia.
Line 68: Line 63:
 Tämän saman tempun voi tehdä siis niin monelle palvelimelle kuin haluaa tällä samalla id_rsa.pub -tiedostolla. Nyt sinun pitäisi pystyä kirjautumaan niille kaikille palvelimille sillä salasanalla jonka asetit tuolle avaimelle.
Line 69: Line 65:
Tämän saman tempun voi tehdä siis niin monelle palvelimelle kuin haluaa tällä samalla id_rsa.pub -tiedostolla. Nyt sinun pitäisi pystyä kirjautumaan niille kaikille palvelimille sillä salasanalla jonka asetit tuolle avaimelle.

Ssh osaa siis käyttää suoraan tuota yksityistä avainta kunhan se on tallennettu oletussijaintiin. Jos haluat käyttää muualle tallennettua avainta niin se onnistuu -i vivulla:
 Ssh osaa siis käyttää suoraan tuota yksityistä avainta kunhan se on tallennettu oletussijaintiin. Jos haluat käyttää muualle tallennettua avainta niin se onnistuu -i vivulla:
Line 76: Line 70:
=== Tietoturva ===
Line 77: Line 72:
== Keychain ==  Jotta avainten tuoma tietoturvalisä saataisiin oikeasti käyttöön täytyy tavallinen salasanalla kirjautuminen poistaa käytöstä. Se onnistuu yksinkertaisesti asettamalla palvelimen conffi-tiedostoon '''/etc/ssh/sshd_config''' rivi:
 {{{
PasswordAuthentication no
}}}
 Ko. rivi löytyy jo sieltä, mutta kommentoituna ja arvolla "yes". Tämän jälkeen palvelin pitää tietysti käynnistää uudelleen.









== Graafisten ohjelmien etäkäyttö ==
Graafisia ohjelmia pystyy käyttämään suoraan ssh:n läpi kunhan yhteys otetaan -X vivun kanssa. Ennen kuin tätä voidaan käyttää täytyy se aktivoida ssh-palvelimen asetuksista.

 * Taas kerran muokataan palvelimen '''/etc/ssh/sshd_config'''-tiedostoa. Katso että kohdan '''X11Forwarding''':n arvona on yes ja että se ei ole kommentoituna.
 {{{
X11Forwarding yes
}}}

 * Tallenna tiedosto ja käynnistä ssh-palvelin uudelleen.

Nyt graafisten ohjelmien etäkäyttö pitäisi onnistua. Kannattaa myös laittaa yhteyden pakkaus päälle -C vivulla jolloin graafinen etäyhteys helpottuu hitaammilla yhteyksillä. Huomaa että kyseessä on iso X ja C.
 {{{
$ ssh -XC tunnus@palvelin
tunnus@palvelin:~$ xmms
}}}
Ja vaikka xmms:n pitäisi nyt käynnistyä.



== Keychain - Useita palvelimia yhden salasanan taakse ==
Line 81: Line 109:
Kun sinulla on julkisella avaimella kirjautuminen käytössä voidaan hommaa helpottaa komenolla '''ssh-add ~/.ssh/id_rsa''' joka kysyy avaimen salasanan ja ottaa sen talteen '''ssh-agent'''-palveluun jonka jälkeen sinun ei enää tarvitse syöttää sitä vastaavaa salasanaa, mutta tämä toimii vai yhdessä terminaalisessiossa kerrallaan joten hyöty jää melko minimaaliseksi. Tätä korjaamaan otamme scriptin nimeltä Keychain. Kun sinulla on julkisella avaimella kirjautuminen käytössä, voidaan hommaa helpottaa komenolla '''ssh-add ~/.ssh/id_rsa''' joka kysyy avaimen salasanan ja ottaa sen talteen '''ssh-agent'''-ohjelmaan jonka jälkeen sinun ei enää tarvitse syöttää sitä vastaavaa salasanaa, mutta tämä toimii vai yhdessä terminaalisessiossa kerrallaan joten hyöty jää melko minimaaliseksi. Tätä korjaamaan otamme scriptin nimeltä Keychain.
Line 94: Line 122:
 '''id_rsa''':n tilalle voit toki suorankin polun yksityiseen avaimeesi. Siihen voi myös laittaa argumentiksi useammankin avaimen mikäli sille on tarvetta.  '''id_rsa''':n tilalle voit toki suorankin polun yksityiseen avaimeesi. Siihen voi myös laittaa argumentiksi useammankin avaimen mikäli sille on tarvetta, mutta silloin joudut syöttämään yhden salasanan enemmän.
Line 96: Line 124:
Tämän jälkeen ainakin kun avaa uuden terminaalin ajetaan tuo keychain scripti. Se käynnistää ssh-agentin mikäli se ei ole käynnissä ja ensimmäisellä kerralla kysyy avaimen salasanaa. Tämän jälkeen voit avata niin monta terminaalia kuin haluat kirjautua niillä haluamillesi palvelimille. Jos halua syöttää salasanaa, niin voit painaa ctrl+c ja käyttää terminaalia normaalisti. Tämän jälkeen ainakin kun avaa uuden terminaalin ajetaan tuo keychain scripti. Se käynnistää ssh-agentin mikäli se ei ole käynnissä ja ensimmäisellä kerralla kysyy avaimen salasanaa. Tämän jälkeen voit avata niin monta terminaalia kuin haluat ja kirjautua niillä haluamillesi palvelimille ilman tarvetta syöttää salasanaa. Jos kuitenkin et joskus halua käynnistää ssh-agenttia voit ohittaa salasana-kyselyn painamalla ctlr-c.
Line 98: Line 126:
Kun lopetat työskentelyn, niin voit sulkea ssh-agentin komennolla:
{{{
Kun lopetat työskentelyn voit sulkea ssh-agentin komennolla:
 {{{
Line 102: Line 130:
Tämän jälkeen kirjautujalta kysytään taas normaalisi avaimen salasanaa. tai
 {{{
$ keychain -k all
}}}
Tämän jälkeen kirjautujalta kysytään taas normaalisi avaimen salasanaa.

=== Xautolock - sulje ssh-agent automaattisesti ===
Xautolock on tarkoitettu x-session lukitsemiseen tietyn idle-ajan jälkeen. Ohjelmaan voidaan vapaasti määrätä millä ohjelmalla sessio lukitaan, joten ohjelmaa voidaan yhtä hyvin käyttää ssh-agentin sulkemiseen tietyn idle-ajan jälkeen.
 Asenna xautolock
 {{{
sudo apt-get install xautolock
}}}
 ssh-agentin sulkeminen esimerkiksi 60 minuutin jälkeen tapahtuu näin:
 {{{
$ xautolock -time 60 -locker "keychain -k all &"
}}}

 Komento kannattaa ajaa aina kirjautumisen yhteydessä.
 KDE:ssa tämä onnistuu tekemällä tiedosto '''~/.kde/Autorun'''-hakemistoon jossa tuo komento on.


 '''~/.kde/Autorun/xautolock-start'''
 {{{
#!/bin/bash
xautolock -time 60 -locker "keychain -k all" &
}}}
 Tiedostolle tulee antaa suoritusoikeudet
 {{{
chmod +x ~/.kde/Autorun/xautolock-start
}}}

 Gnomessa vastaava onnistuu session-managerilla.
Line 106: Line 165:
 * [http://forum.ubuntu-fi.org/index.php?topic=503.0 Keskustelu Ubuntu-fi foorumilla]
 * [http://wiki.ubuntu-fi.org/Wiki/sshfs Sshfs] - Mounttaa ssh-palvelin tiedostojärjestelmäksi
 * [http://wiki.ubuntu-fi.org/Wiki/Dynaaminen_DNS Dynaaminen DNS] - IP-osoite ongelmat kuriin
 * [[http://forum.ubuntu-fi.org/index.php?topic=503.0|Keskustelu Ubuntu-fi foorumilla]]
 * [[http://wiki.ubuntu-fi.org/Wiki/sshfs|Sshfs]] - Mounttaa ssh-palvelin tiedostojärjestelmäksi
 * [[http://wiki.ubuntu-fi.org/Wiki/Dynaaminen_DNS|Dynaaminen DNS]] - IP-osoite ongelmat kuriin

Sisällys

SSH ja SFTP-palvelin

SSH on tietoturvaltaan erittäin hyvä tapa ottaa etäyhteyksiä telnetin tapaan. Tämän lisäksi se tarjoaa mahdollisuuden käyttää jopa graafisia ohjelmia etänä. Ssh salaa koko yhteyden mukaan lukien yhteydenoton, joten tunnukset ja salasanat pysyvät turvassa. OpenSSH sisältää myös mahdollisuuden SFTP:llä tapahtuvaan tiedostojen siirtoon. Se vastaa täysin FTP:tä, mutta liikenne on salattua ssh-pääteyhteyden tapaan.

Palvelimen asennus

Avaa pääte ja komenna

  • $ sudo apt-get install openssh-server

SSH-palvelin käynnistyy samalla kuin se asennetaan, joten siihen voi heti yrittää ottaa yhteyttä joko SSH:llä tai SFTP:lla. Nythän kuka tahansa joka näkee koneen ulkoisen IP:n pystyy yrittämään koneelle sisään arvaamalla käyttäjätunnuksen ja salasanan. Ubuntussa ei onneksi ole rootin tiliä aktivoituna, joten siihen kohdistuvat yritykset ovat luonnollisesti turhia. Muutenkin nuo madot yrittävät yleensä arvailla englantilaisia erisnimiä, joten suomalaisilla koneilla niitä ei useinkaan onnista. Olisi kuitenkin mukavaa jos pystyisi määräämään ketkä saavat ottaa koneelle yhteyttä, ja sen toki pystyykin tekemään seuraavasti.

  1. Avaa tekstieditorissa pääkäyttäjän oikeuksin (sudo) tiedosto /etc/ssh/sshd_config

  2. Etsi kohta PermitRootLogin yes ja muuta sen arvoksi no

  3. Voit rajoittaa ssh:n käyttöoikeuden tietyille käyttäjille lisäämällä tiedoston loppupuolelle rivi joka alkaa avainsanalla AllowUsers ja listataan sen perään välilyönnillä erotettuna käyttäjät jotka saavat ottaa koneeseen yhteyden

    AllowUsers janne mikk0 ninnnu

    Voit myös rajoittaa joitain käyttäjiä vain tiettyihin ip-osoitteisiin näin koti@10.0.0.3 jolloin käyttäjä koti pääsee vain osoitteesta 10.0.0.3 kirjautumaan. Voit käyttää myös ns. wildcardeja koti@10.0.0.* jolloin vain 10.0.0. -alkuisista osoitteista pääsee sisään. Kätevä esim. lähiverkkoa varten.

  4. tallenna tiedosto ja käynnistä palvelin uudestaan komentamalla:
    $ sudo /etc/init.d/ssh restart
    Nyt koneelle pääsee vain tunnuksilla janne, mikk0 ja ninnnu Tällä tietoturvatasolla voi aloittaa. Kannattaa kuitenkin seurata tiedostosta /var/log/messages, keitä koneelle on yrittänyt sisään.

Yksityisen ja julkisen avaimen käyttöönotto

Yksityisellä ja julkisella avaimella voidaan tiukentaa tietoturva vaatimuksia, jolloin kirjautumiseen tarvitaan vähintään 1024 bittinen avain-tiedosto sekä sitä vastaava salasana. Tai niillä voidaan myös vähentään salasanojen ainaista kirjoittelua (alempana lisää). Käyttäjien täytyy luoda itselleen avaimet joita tulee kaksi kappaletta: julkinen ja yksityinen. Julkinen avain pitää toimittaa palvelimelle johon ollaan kirjautumassa ja yksityinen avain pitää lisätä käyttäjän kotihakemistossa olevaan hakemistoon .ssh. Julkinen avain siis määrää millä yksityisellä avaimella saa kirjautua sisään.

Avainparin luominen asiakaskoneella

  • Luodaan rsa-tyyppisen avainpari jonka pituus on 2048 bittiä päätteessä komentamalla:
    $ ssh-keygen -t rsa -b 2024

    Kannattanee hyväksyä tiedostojen oletussijainti ~/.ssh/id_rsa ja ~/.ssh/id_rsa.pub. Noista ensimmäinen eli yksityinen avain tulee siis pitää visusti poissa ulkopuolisten silmistä! Ja jälkimmäinen on se julkinen avain joka toimitetaan palvelimelle. Tuo ohjelma kysyy myös salasanaa joka liitetään avaimeen ja jota käytetään jatkossa avaimen kanssa kirjautuessa (se voi olla eri kuin käyttäjän kohdekoneen salasana).

Julkisen avaimen lisääminen palvelimelle

  1. Kopioidaan julkinen avain asiakaskoneelta palvelimelle
    $ scp ~/.ssh/id_rsa.pub tunnus@palvelin:

    Ole tässä tarkkana ettet vahingossakaan lähetä yksityistä avainta (id_rsa) palvelimelle!

  2. Kirjaudutaan palvelimelle
    $ ssh tunnus@palvelin
  3. Lisätään avain
    $ cat id_rsa.pub >> .ssh/authorized_keys
    Huom. authorized_keys-tiedostossa voi olla useita avaimia.
  4. Ja lopuksi kannattanee vielä poistaa turha avaintiedosto palvelimelta
    $ rm id_rsa.pub
    Tämän saman tempun voi tehdä siis niin monelle palvelimelle kuin haluaa tällä samalla id_rsa.pub -tiedostolla. Nyt sinun pitäisi pystyä kirjautumaan niille kaikille palvelimille sillä salasanalla jonka asetit tuolle avaimelle. Ssh osaa siis käyttää suoraan tuota yksityistä avainta kunhan se on tallennettu oletussijaintiin. Jos haluat käyttää muualle tallennettua avainta niin se onnistuu -i vivulla:
    $ ssh tunnus@palvelin -i /polku/yksityiseen/avaimeen

Tietoturva

  • Jotta avainten tuoma tietoturvalisä saataisiin oikeasti käyttöön täytyy tavallinen salasanalla kirjautuminen poistaa käytöstä. Se onnistuu yksinkertaisesti asettamalla palvelimen conffi-tiedostoon /etc/ssh/sshd_config rivi:

    PasswordAuthentication no
    Ko. rivi löytyy jo sieltä, mutta kommentoituna ja arvolla "yes". Tämän jälkeen palvelin pitää tietysti käynnistää uudelleen.

Graafisten ohjelmien etäkäyttö

Graafisia ohjelmia pystyy käyttämään suoraan ssh:n läpi kunhan yhteys otetaan -X vivun kanssa. Ennen kuin tätä voidaan käyttää täytyy se aktivoida ssh-palvelimen asetuksista.

  • Taas kerran muokataan palvelimen /etc/ssh/sshd_config-tiedostoa. Katso että kohdan X11Forwarding:n arvona on yes ja että se ei ole kommentoituna.

    X11Forwarding yes
  • Tallenna tiedosto ja käynnistä ssh-palvelin uudelleen.

Nyt graafisten ohjelmien etäkäyttö pitäisi onnistua. Kannattaa myös laittaa yhteyden pakkaus päälle -C vivulla jolloin graafinen etäyhteys helpottuu hitaammilla yhteyksillä. Huomaa että kyseessä on iso X ja C.

  • $ ssh -XC tunnus@palvelin
    tunnus@palvelin:~$ xmms

Ja vaikka xmms:n pitäisi nyt käynnistyä.

Keychain - Useita palvelimia yhden salasanan taakse

Kun käytössä alkaa olla useita palvelimia, niin ainainen salasanojen syöttäminen alkaa tuntua turhauttavalta ja tulee tarve vähentää niitä. Helppo, mutta typerä ratkaisu olisi tehdä avainpari ilman salasanaa, jolloin kirjautumiseen ei koskaan tarvittaisi salasanaa. Tämä olisi tosin äärimmäisen epäturvallista, sillä jos joku saa käsiisi sinun id_rsa-tiedoston hän pystyisi kirjautumaan kaikkille niille palvelimille joille olet asettanu sen.

Kun sinulla on julkisella avaimella kirjautuminen käytössä, voidaan hommaa helpottaa komenolla ssh-add ~/.ssh/id_rsa joka kysyy avaimen salasanan ja ottaa sen talteen ssh-agent-ohjelmaan jonka jälkeen sinun ei enää tarvitse syöttää sitä vastaavaa salasanaa, mutta tämä toimii vai yhdessä terminaalisessiossa kerrallaan joten hyöty jää melko minimaaliseksi. Tätä korjaamaan otamme scriptin nimeltä Keychain.

  • Aloitetaan asentamalla se
    $ sudo apt-get install keychain

    Avaa tekstieditoriin ~/.bashrc Laita sinne seuraavat rivit

    keychain --nogui id_rsa
    . ~/.keychain/`uname -n`-sh

    id_rsa:n tilalle voit toki suorankin polun yksityiseen avaimeesi. Siihen voi myös laittaa argumentiksi useammankin avaimen mikäli sille on tarvetta, mutta silloin joudut syöttämään yhden salasanan enemmän.

Tämän jälkeen ainakin kun avaa uuden terminaalin ajetaan tuo keychain scripti. Se käynnistää ssh-agentin mikäli se ei ole käynnissä ja ensimmäisellä kerralla kysyy avaimen salasanaa. Tämän jälkeen voit avata niin monta terminaalia kuin haluat ja kirjautua niillä haluamillesi palvelimille ilman tarvetta syöttää salasanaa. Jos kuitenkin et joskus halua käynnistää ssh-agenttia voit ohittaa salasana-kyselyn painamalla ctlr-c.

Kun lopetat työskentelyn voit sulkea ssh-agentin komennolla:

  • $ ssh-agent -k

tai

  • $ keychain -k all

Tämän jälkeen kirjautujalta kysytään taas normaalisi avaimen salasanaa.

Xautolock - sulje ssh-agent automaattisesti

Xautolock on tarkoitettu x-session lukitsemiseen tietyn idle-ajan jälkeen. Ohjelmaan voidaan vapaasti määrätä millä ohjelmalla sessio lukitaan, joten ohjelmaa voidaan yhtä hyvin käyttää ssh-agentin sulkemiseen tietyn idle-ajan jälkeen.

  • Asenna xautolock
    sudo apt-get install xautolock
    ssh-agentin sulkeminen esimerkiksi 60 minuutin jälkeen tapahtuu näin:
    $ xautolock -time 60 -locker "keychain -k all &"
    Komento kannattaa ajaa aina kirjautumisen yhteydessä.

    KDE:ssa tämä onnistuu tekemällä tiedosto ~/.kde/Autorun-hakemistoon jossa tuo komento on.

    ~/.kde/Autorun/xautolock-start

    xautolock -time 60 -locker "keychain -k all" &
    Tiedostolle tulee antaa suoritusoikeudet
    chmod +x ~/.kde/Autorun/xautolock-start
    Gnomessa vastaava onnistuu session-managerilla.

Linkkejä