Reverse SSH

Dans mon cas, j'utilise un serveur VPS sur lequel les personnes que je souhaite aider vont ouvrir un tunnel. La première chose à faire est de créer un ou deux utilisateurs sur le serveur.

me@server$ sudo adduser --no-create-home userToHelp

Il faut aussi vérifier que la configuration de ssh permettent cette opération :

me@server$ cat /etc/ssh/sshd_config | grep AllowTcpForwarding
AllowTcpForwarding yes

Si la commande ne renvoi aucun résultat, il faut ajouter la ligne AllowTcpForwarding yes dans le fichier /etc/ssh/sshd_config. Une fois que c'est fait, il faut redémarrer le service ssh.

me@server$ sudo service ssh restart

Une fois tous les prérequis complétés, l'utilisateur que vous souhaitez aider peut ouvrir un tunnel.

userToHelp@ordi$ ssh -NR 22222:localhost:22 userToHelp@IP.DU.SERVEUR -p PORT-SSH-SUR-LE-SERVEUR

Ou, si on veut ouvrir un shell :

userToHelp@ordi$ ssh -R 22222:localhost:22 userToHelp@IP.DU.SERVEUR -p PORT-SSH-SUR-LE-SERVEUR

On peut vérifier dans les logs du serveur que l'authentification s'est bien déroulée si on a choisi l'option “-N” qui n'ouvre pas de shell.

me@server$ sudo tail -F /var/log/auth.log
Aug 21 20:59:13 C-3PO sshd[28392]: pam_unix(sshd:session): session opened for user userToHelp by (uid=0)

Une fois le tunnel ouvert, on peut, depuis le serveur, se connecter chez l'utilisateur qu'on veut aider.

me@server$ ssh -p 22222 userToHelp@localhost

Sources