OpenSSH : multiplexage des connexions

Boris HUISGEN February 23, 2011

administration système openssh

Si comme moi, vous vous connectez plusieurs fois sur un même serveur SSH (perso, plus j’ai de terms, plus je suis content), il existe une astuce pour éviter l’invite de mot de passe (le cas échéant) tout en gagnant en rapidité d’établissement.

OpenSSH peut en effet multiplexer plusieurs sessions - un shell, un envoi de fichier, une redirection de port est une session - dans un seul tunnel - une connexion réseau -. On évite donc de créer un tunnel supplémentaire, sa connexion associée, l’authentification, etc. Si un tunnel existe déjà, la session est alors directement ouverte et sans demande de mot de passe. Si vous utilisez OpenVPN, le principe est exactement le même : toutes les connexions réseaux sont multiplexées dans un seul tunnel.

Méthode hard

  • se connecter en mode master, en précisant un fichier socket pour nommer le tunnel et pouvoir le réutiliser par la suite :

    bhuisgen:~ bhuisgen$ ssh user@host -M -S ~/.ssh/socket/tunnel

Le mot de passe est demandé (si non, votre clé SSH a été prise en compte, mais le temps d’établissement est plus rapide). Attention à ce que le répertoire ~/.ssh/socket existe bien au préalable.

  • ensuite pour tout autre session, faire un slave avec le fichier socket du tunnel :

    bhuisgen:~ bhuisgen$ ssh user@host -S ~/.ssh/socket/tunnel

Et là, c’est le drame … la session s’ouvre directement, sans demande de mot de passe. A noter que le tunnel SSH n’est pas détruit tant que toutes les sessions slave ne sont pas terminées.

Méthode playmobil

Tout est automatisé dans la configuration SSH :

bhuisgen:~ bhuisgen$ more ~/.ssh/config

Host=*
ControlMaster auto
ControlPath ~/.ssh/sockets/ssh-socket-%r-%h-%p

Le multiplexage est désormais transparent et on en revient aux options habituelles :

bhuisgen:~ bhuisgen$ ssh user@host

Ce qui est pas plus mal !

See also

FreeBSD : SSH depuis l’installation en mode fixit
Read more
OpenSSH : journaliser les transferts SFTP
Read more
OpenSSH : restreindre l’accès utilisateur en SFTP
Read more