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.