User Tools

Site Tools


ssh_config

This is an old revision of the document!


SSH Config

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

Ora bisogna configurare il proprio client SSH sul portatile:

# server intermedio
Host vps
  HostName 31.220.26.116   # IP del server di mezzo, la porta non e' specificata perche' prende di default la 22
  User root
# server di destinazione
Host desmacerata.it  desmc
  HostName      195.223.142.97  # IP del server finale
  Port          4444            # porta del server finale
  User          root
  ProxyCommand  ssh vps 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 finale. portatile (e ovviamente la propria chiave pubblica sui 2 server).

A questo punto dal portatile lanciare:

$ ssh desmc

Fonte: http://undeadly.org/cgi?action=article&sid=20070925181947

ssh_config.1410891763.txt.gz · Last modified: 2014/10/28 11:28 (external edit)