Opzioni di connessione su ssh (e git)

Sulla scia del precedente articolo riguardo le sequenze di escape di ssh, proseguiamo con alcuni tips riguardo ad ssh utili per semplificarci la vita.

Se si devono fare diverse operazioni su server con impostazioni personalizzate (ad esempio la porta diversa da 22) può essere tedioso ricordarsi le opzioni giuste da passare ad ssh o scp. Quindi, è possibile definire nel proprio file ~/.ssh/config uno o più alias così da omettere utente, porta, hostname esplicito o altre opzioni più creative:

Host myhost
    Hostname dominiolungo.example.com
    User johndoe
    Port 1234

In questo modo, anziché dover digitare ogni volta ssh -p 1234 johndoe@dominiolungo.example.com sarà sufficiente battere semplicemente ssh myhost. Comodo, no?

Queste opzioni si ripercuotono su tutti i servizi che usano openssh come agente ssh di default, come scp, rsync o git. Quindi, se johndoe sta hostando un server git a suo nome, il comando git clone myhost:myrepos/project.git farà il suo dovere alla perfezione.

È possibile specificare anche opzioni più peculiari, ad esempio per instaurare un forwarding X11 (ForwardX11 yes), oppure per effettuare un port forwarding (LocalForward 8080:192.168.1.1:80):

Host mygui
    Host casamia.noip.example.com
    ForwardX11 yes

Host alicegate
    Host casamia.noip.example.com
    LocalForward 8080:192.168.1.1:80

Per maggiori informazioni si rimanda al man di ssh_config.

Incidente di Strasburgo

Fotografia dell’incendio

Il 10 marzo 2021, ore 00:47, un incendio è scoppiato nel datacenter di Strasburgo del nostro provider OVH, presso il quale erano ospitati i nostri server, che sono andati completamente distrutti. Nell’incidente non ci sono stati feriti.

È stata avviata la nostra procedura di disaster recovery, che ci permetterà di recuperare tutti i dati importanti. Tuttavia, occorreranno alcune settimane prima che tutti i servizi vengano ripristinati. Nel frattempo, potranno verificarsi rallentamenti e temporanei disservizi.

Lo stato del ripristino può essere seguito in questa pagina dedicata.

Digitale Civile

distretto_economia_civile

Al via il progetto Digitale Civile del Comune di Empoli, in collaborazione con numerose associazioni di volontariato del territorio, tra cui GOLEM.

Hai mai pensato di donare il tuo vecchio computer?
Il progetto Digitale Civile mira a lenire gli effetti del divario digitale nei confronti dei cittadini, con priorità per gli studenti che, in virtù delle misure di contenimento della diffusione del virus, hanno l’esigenza di dotarsi di strumenti adeguati per lo svolgimento delle attività di didattica a distanza.

Per maggiori informazioni, consulta la pagina dedicata.

Sequenze di escape SSH

Sarà capitato a tutti di utilizzare SSH, per collegarsi ad un server o ad Raspberry-equivalente nella propria rete locale. Se si verificano problemi di connettività, capita che ssh possa piantarsi senza accettare più alcun comando, dovendo terminarlo grezzamente chiudendo la finestra del terminale o con kill.
L’evento si verifica perché il client ritiene di avere delle connessioni attive in sospeso e ci fa il piacere di rimanere in attesa in modo da poterle riprendere non appena la connettività di rete torna ad essere stabile. Ma se questo non avviene, il processo resta lì e tocca ucciderlo.

Oppure… si può richiedere la chiusura della connessione in modo più garbato. OpenSSH mette a disposizione una serie di sequenze di escape, comandi che non vengono inviati al server remoto ma vanno a dialogare direttamente con il processo ssh in corso. Una sequenza di escape comincia, per impostazione predefinita, con ~ (tilde), che deve essere inviata come primo carattere della linea (ovvero dopo aver battuto invio).

Per esempio, battendo ~. (tilde seguita da un punto) si termina la connessione corrente, rispondendo al problema di cui sopra.

Con ~? abbiamo una lista delle sequenze supportate:

Supported escape sequences:
  ~.  - terminate connection (and any multiplexed sessions)
  ~B  - send a BREAK to the remote system
  ~C  - open a command line
  ~R  - Request rekey (SSH protocol 2 only)
  ~^Z - suspend ssh
  ~#  - list forwarded connections
  ~&  - background ssh (when waiting for connections to terminate)
  ~?  - this message
  ~~  - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)

Per commentarne alcune:

  • Con ~# si interroga il processo ssh in uso sul numero di connessioni aperte: normalmente si ha solo una riga con il terminale corrente. Nel caso in cui si siano attivati dei tunnel li si vedranno comparire in lista (vedi le opzioni -X, -R e -L di ssh per approfondire).
  • ~Z è l’equivalente dell’usuale control-Z e sospende il processo ssh. Un control-Z, così come qualsiasi altra sequenza di tasti che non comincia per ~, viene inviata alla sessione remota.
  • Infine, se per qualche motivo si volesse inviare una ~ come primo carattere senza inavvertitamente innescare una sequenza di escape, è sufficiente inserire ~~.