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