Se abbiamo la necessità di aprire diverse connessioni ad un host sul quale non è possibile l'autenticazione con chiave possiamo evitare di digitare ogni volta la password riutilizzando un'unica connessione.
Per prima cosa ci connettiamo all'host remoto attivando il Control Master
e specificando il socket da utilizzare per le successive connessioni:
ssh -M -S ~/.ssh/<socket> <host>
Quindi apriamo le connessioni successive usando il socket, in questo modo non ci verrà richiesta la password:
ssh -S ~/.ssh/<socket> <host>
Se abbiamo necessità di aprire una connessione indipendente possiamo specificare un socket nullo:
ssh -S none <host>
Se vogliamo rendere permanente questo comportamento possiamo inserire le sequenti linee nel nostro ~/.ssh/config
, adattandole alle nostre necessità.
Host <host> ControlMaster auto ControlPath ~/.ssh/cm_socket-%r@%h:%p ControlPersist 1
Di seguito riporto il significato dei parametri come descritti nella pagina di manuale:
- ControlMaster auto
- try to use a master connection but fall back to creating a new one if one does not already exist.
- ControlPath ~/.ssh/cm_socket-%r@%h:%p
- Specify the path to the control socket used for connection sharing
- ControlPersist 1
- specifies that the master connection should remain open in the background (waiting for future client connections) after the initial client connection has been closed.