Snow Leopard, ssh-agent and an everlasting memory

If you recently switched from an older (pre 10.6) version of OS X to the latest baby, and have the old habit of using ssh to connect around, you may have noticed a singular behaviour: while the older versions always asked you for a passphrase (you have a passphrase set on your private key, right?) the new OS 10.6.x does it just the first time you use it.

Now, no doubt it is handy and user-friendly and automagical and… but I feel it disturbing: if by chance I hand over the laptop to somebody for a quick glance at a web page, for example, she can use it to connect anywhere without my consent — ok, I’m oversimplifying, but you get the idea.

The mistery lies into our old friend ssh-agent: it is spawn using
/System/Library/LaunchAgents/org.openbsd.ssh-agent.plist
[on a single line for yout copying pleasure] as a configuration file and it will cache your passphrase the first time you use ssh.
Up to here it’s fine.

What is troublesome to me is that the default cache time is unlimited (see the man page, this is the default behaviour when it is launched without specifying a “-t” option) therefore it will never forget the passphrase until I logout — being the only user of my laptop, this does not happen often.

Enter the joy of xml configuration files: edit the org.openbsd.ssh-agent.plist, and add the option to your liking, that is change this

<array>
<string>/usr/bin/ssh-agent</string>
<string>-l</string>
</array>

to something like this

<array>
<string>/usr/bin/ssh-agent</string>
<string>-l</string>
<string>-t</string>
<string>120</string>
</array>

if a couple of minutes of “grace period” suit your usage.
Then, just kill the process — it will spawn again the next time you use ssh.

[By the way:
Dear Internet, posting code like the XML up here sucks big time.
It took me more time to format the two snippets to render correctly then writing the whole post.
What do you use to ease this pain?
thank you.]

At a new $HOME

Finally everything (hopefully) has been moved — if you read this post, the DNS you use has been updated to the new IP.

Sorry it has taken a while, this type of configuration is fairly new to me and a little bit more complex than the previous one — including the upgrade of all the software I was using, and an operating system swap.
I hope this setup will be stable for a while: it carries some of the advantages you will always hope you’ll not be using but that will be extremely useful those few times (remote reboots anyone?).

Last but not least, I’d like to thank both the people who have been hosting my old machine (you know who you are) and those hosting the “new” one.

All these people have always been extremely kind and helpful even when they had no other particular reason than friendship.
I have a long list of beers that I owe them and I’m determined to pay down my debt :)

We’re going down :)

Per ragioni indipendenti dalla mia volonta`, la macchina che ospita questo sito deve essere spenta entro domani breve.
Nel ringraziare tutti quelli che fino ad oggi le hanno permesso di rimanere su Internet (update 20090924: e che hanno gentilmente prorogato i termini), vi prometto che prima o poi tornera` su (se non nella sostanza, almeno nei contenuti) nel tempo piu` breve possibile.

Una settimana o dueDal momento in cui questa macchina andra` giu`, pochi giorni, direi…

A tra poco :)

Bump alla v2.5! Yeah.

Ieri sera ho deciso che era ora di portare a 2.5 la “versione” di questo blog su cui scrivo sempre piu` di rado.
Non temete: queste pagine continuano ad esser servite da vigorosi 167Mhz di CPU e 192Mb di ram, ma ho fatto oggi il “porting” da un eccellente webserver leggero (lighttpd) che pero` mi dava alcuni problemi ad nginx.

Avevo sempre avuto la curiosita` di provare nginx, ma l’ultima volta che ci avevo guardato era ricco di documentazione, in una sola lingua, e non quella che speravo: il russo. :-)

Invece dopo aver dato un’occhiata al wiki di documentazione, oggi ci ho provato.
E` stata una migrazione pressoche` indolore, a parte un fastidioso problema (mio) all’interno di una stanza di configurazione (sua). Una volta capito il perche` alcune cose non funzionavano come mi aspettavo (dopo che mettere l’access.log a livello di debug, aver ricompilato l’eseguibile con --with-debug, e — alla soglia della disperazione — essermi attaccato con ktrace all’eseguibile).

Rispetto a “lighty” la complessita` del file di configurazione e` forse di poco minore, come l’occupazione di memoria. Le performance sono per entrambi indiscutibili, nei prossimi mesi vedremo se quello che mi ha spinto a provare altro rispetto a lighty funziona meglio.
Da sottolineare che rispetto a lighty (singolo processo, singolo thread e I/O non bloccante con poll/epoll/kqueue/…), nginx e` piu` “alla Apache”, con un processo master e un numero configurabile di figli.
Apprezzabile, dal mio punto di vista, che nginx di default tenda ad installarsi in una directory di /usr/local dentro cui mette tutto (log, configurazione, file html): dal mio punto di vista questo permette di mantenere piu` pulito il filesystem.
Se siete interessati, qui c’e` un documento che spiega come configurarlo con particolare attenzione alla sicurezza.

Una curiosita`: lighttpd e` un progetto figlio di Dan Kegel, autore dell’interessante documento (nonostante sia del 2006) “The C10K problem” — problema che anche nginx afferma esplicitamente di risolvere. :-)

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close