Archives du mot-clé ssh

Accèder à un PC nomade partout tout le temps

Il suffit de lui dire de monter un tunnel ssh entre lui et un serveur fixe (comprendre : qui a une adresse IP publique ou vers lequel on peut forwarder un port).

La première chose à faire est d’automatiser la connexion entre le client et le serveur, à l’aide de clefs ; je ne le refais pas ici, c’est expliqué partout ailleurs.

Il suffit pour cela d’exécuter la commande suivante :

ssh -Nf -o ExitOnForwardFailure=yes -o ServerAliveInterval=300 -o ServerAliveCountMax=2 -R 2222:localhost:22 serveur > /dev/null 2>&1

Quelques explications sur les options choisies :

  • ExitOnForwardFailure : si vous lancez la commande mais que le tunnel existe déjà, ne laisse pas la connexion ssh active (pour rien)
  • ServerAliveInterval et ServerAliveCountMax : si le PC nomade est derrière un NAT et que la connexion n’est pas utilisée, au bout d’un moment le NAT va oublier la session. Du coup le tunnel sera toujours existant côté client et serveur, mais plus utilisable. On fait circuler un petit quelque chose régulièrement pour rappeler au NAT notre présence.
  • 2222 : un port au hasard, côté serveur, mais > 1024. Si vous avez 2 nomades, il faudra bien sûr faire preuve d’imagination
  • 22 : le port sur le nomade vers lequel on voudra accéder. Ici ssh, voir l’exemple plus bas.
  • serveur : Mettez ici le DNS du serveur ou un alias ssh. Cet alias permettra de préciser d’autres paramètres : le port, l’utilisateur à prendre côté serveur, etc.

Bien sûr ce tunnel va tomber dès que l’une des deux machines va s’arrêter ou être déconnectée du réseau. Pour cela 2 solutions :

  • une crontab, toute les 15 minutes :
*/15 * * * * ssh ...
  • Beaucoup plus élégant : déclenché par votre client dhcp ou le service réseau (network, NetworkManager). La solution est laissée à l’appréciation du lecteur.

Pour utiliser le tunnel, depuis le serveur :

ssh -p 2222 localhost

Et c’est tout. Ça marche, c’est magique.

N’oubliez pas d’automatiser la connexion entre le serveur et le client.

Publicités