Il est l'outil le plus convoité pour communiquer à distance avec un serveur de manière sécurisé. Lors de l'ouverture d'une connexion, il suffit de connaitre le nom d'utilisateur et le mot de passe d'une machine distante pour qu'elle soit effective. Par défaut il n'y a pas besoin de s'échanger de certificat ni de clé manuellement. Tout se fait automatiquement avec une faible empreinte en ressources système.
Actuellement où j'écrit ces lignes, c'est la version 7.4 que nous utiliserons dans les tutoriels ci-dessous.
ssh -L 1234:127.0.0.1:22 toto@serveur.com
Ainsi :
ssh toto@localhost -p 1234
En locale :
$ ssh -L 3000:localhost:3000 root@serveur.com
A distance :
# mkfifo /tmp/fifo # nc -l -p 3000 < /tmp/fifo | nc -u 127.0.0.1 30000 > /tmp/fifo
En locale :
# mkfifo /tmp/fifo # nc -l -u -p 30000 < /tmp/fifo | nc localhost 3000 > /tmp/fifo
Ainsi le port 30000 est en écoute sur la machine en local. Leses requêtes en direction du port 30000 seront transcodé par fifo et transporté par le tunnel tomcat qui arriverons sur le serveur distant.
Voici un exemple de fichier de configuration pour se connecter facilement à des machienes distantes :
nano .ssh/config
Host serveur.com LocalForward 8080 127.0.0.1:22
Il est possible de spécifier l'utilisateur avec le X11 forward d'activé.
Login Grace Time 1m Permit RootLogin no StrictModes yes MaxAuthTrico 3 MaxSessions 3