This is an old revision of the document!
Table of Contents
Client SSH
Il file ~/.ssh/config
contiene le configurazioni relative al client SSH, da non confondere con quello del server (/etc/ssh/sshd_config
). E' possibile:
- definire dei parametri per ogni host, in questo modo da usare degli alias
- definire dei parametri di default
Parametri per host
Host befair2 bf2 User root HostName befair2.befair.it
In questo modo e' possibile usare bf2
invece di root@befair2.befair.it
per connettersi al server:
ssh bf2
Questi alias si possono usare anche in programmi che a loro volta usano SSH, ad esempio Git. Ad esempio per clonare un repository dal server, si puo' usare:
$ git clone bf2:git_repo
In alternativa a:
$ git clone root@befair2.befair.it:git_repo
Parametri di default
Host * User root ServerAliveInterval 300 ControlMaster auto ControlPath ~/.ssh/%r@%h:%p ControlPersist 8h
In questo caso per ogni connessione SSH, viene generata una socket (es: ~/.ssh/root@befair2.befair.it:22
) usata per:
- fungere da multiplexer per tutte le sessioni SSH
- mantenere la connessione persistente per un certo periodo (in questo caso per 8 ore dalla chiusura di tutte le sessioni aperte)
I vantaggi sono:
- e' possibile usare la stessa connessione sia per classici utilizzi di SSH che per Ansible (configurando quest'ultimo con la stessa path della socket)
- minor traffico di rete soprattutto quando ci sono elevati traffici (es: Ansible)
- minori tempi di risposta una volta istanziata la connessione
- miglior sicurezza, in quanto si evita la rinegoziazione tramite chiavi asimmetriche di una nuova One-Time-Password ad ogni sessione
Infine ServerAliveInterval
serve a inviare periodicamente un “ping” per mantenere attiva la sessione (mi e' tornato utile nel caso di connessioni instabili). Il tempo e' espresso in secondi.
Nota: e' importante che i parametri di default siano inseriti in fondo, perche' altrimenti sovrascrivono gli altri.
Proxy SSH
E' possibile connettersi ad un server passando per un server intermedio. Prendiamo come server intermedio master
e come server di destinazione desmc
, la connessione sara' quindi:
portatile → master → desmc
Possiamo sfruttare netcat
sul server intermedio. Installiamolo con:
# apt-get install netcat
Nota: tutti i server befairX
hanno netcat gia' installato
Ora bisogna configurare il proprio client SSH sul portatile:
# server intermedio Host master HostName 123.45.67.89 # IP del server intermedio User root # server di destinazione Host desmacerata.it desmc HostName 195.223.142.97 # IP del server di destinazione Port 4444 # porta del server di destinazione User root ProxyCommand ssh master nc %h %p 2> /dev/null # comando chiave che e' spiegato bene nel link in fondo
%h
e %p
sono dei segnaposti per richiamare i valori dell'hostname e della porta del server di destinazione.
Nota: la propria chiave privata non va copiata sul server intermedio, e' sufficiente avere la propria chiave pubblica sui 2 server.
Infine dal portatile lanciare:
$ ssh desmc
Fonte: http://undeadly.org/cgi?action=article&sid=20070925181947