Hyödyllisiä vinkkejä, osa ssh
Haluaisin kertoa muutamista liian vähän tunnetuista näppäristä asetuksista eri ohjelmissa. Kerron niistä lyhyesti ja annan kullekin copypastetettavat rivit, joilla pääsee eteenpäin. Aloitan sarjan kertomalla hieman OpenSSH:n asetustiedostosta ja siinä käyttämistäni asetuksista.
SSH ja ~/.ssh/config
Erittäin näppärä ominaisuus ssh:ssa on .ssh/config-tiedosto, johon voi laittaa kaikenlaisia näppäriä asetuksia. Tiedoston formaatti on kuvattu man-sivulla (man ssh_config). Tiedosto sijaitsee kotihakemiston alla piilotetussa .ssh-hakemistossa. Jos tiedosto puuttuu, luo se.
Host st Hostname st-cn0001.oulu.fi HostKeyAlias st-cn0001.oulu.fi
Tämä pätkä .ssh/config-tiedostossa määrittelisi uuden nimen st, johon voi yhdistää käskyllä ssh st. Koneen oikea nimi on st-cn0001.oulu.fi, joka on aivan järjetön kirjoittaa joka kerta uudestaan. Määrittelemällä alias näin yhdistämisestä tulee taas helppoa. HostKeyAlias-rivi tarkoittaa sitä nimeä, jota ssh käyttää osoitteen ssh-sormenjäljen muistamiseen. Jos vaikka samalla IP-osoitteella olisi monta eri ssh-palvelinta eri porteissa, ssh valittaisi normaalisti sormenjäljen muuttumisesta. Asetuksella ongelma voitaisiin kiertää vaikkapa näin:
Host kone1 Hostname koti.dyndns.org Port 2222 HostKeyAlias kone1.koti Host kone2 Hostname koti.dyndns.org Port 2223 HostKeyAlias kone2.koti
HostKeyAlias-nimen ei tarvitse olla todellinen DNS-nimi.
SSH:lle komentoriviltä annetut liput, kuten porttiohjaukset voi myös määritellä asetustiedostoon, jotta niitä ei tarvitse kirjoittaa käsin joka kerta uudestaan:
Host hansu HostKeyAlias hansu HostName hansu.m5.yx.fi DynamicForward 8888 LocalForward 8080 127.0.0.1:8080 LocalForward 5901 adam:5900
Näin saadaan samalla kertaa alias ja yleisesti käytetyt porttiohjaukset. DynamicForward lisää SOCKS-proxyn yhteyteen (sama kuin ssh -D 8888). SOCKS:ia voi käyttää esim. välittämään selaimen liikenne ssh-putken läpi. Suosittelen, jos on pääsy yliopiston koneelle ja sitä kautta yliopiston oikeuksilla esim. IEEE:n tai vastaaviin kirjastoihin.
Host *.oulu.fi User kortesjo
Edellisestä puolestaan saattaisi olla hyötyä, jos yliopisto on pakottanut käyttämään nimestä johdettua käyttäjätunnusta.
Host * Compression yes TCPKeepAlive yes ServerAliveCountMax 3 ServerAliveInterval 10
Yllä oleva pätkä tarkoittaisi, että kaikkiin osoitteisiin yhdistäessä käytetään pakkausta ja keepalive-toiminnallisuutta, joka katkaisee yhteyden jos liikenne ei kulje 3·10 = 30 sekunnin aikana. Ensimmäinen on erittäin näppärä GPRS-yhteyksiä käytettäessä eikä omien kokemusteni perusteella ole koskaan haitaksi. Jälkimmäisestä on hyötyä, jos käyttää ssh-porttiohjauksia. Kun keepalive katkaisee ssh-yhteyden, ssh kuolee ja sen voi yhdistää uudestaan. Muuten portti voi jäädä varatuksi ja käyttökelvottomaksi kun ssh-yhteys ei ole vielä katkennut mutta yhteys ei myöskään toimi.
Ensimmäisenä tiedostossa löytynyt asetus jää voimaan, eli yleiset oletukset kannattaa laittaa loppuun, jotta tarkemmat osoitekohtaiset asetukset ohittavat ne.
Toivottavasti vinkeistä on iloa.