Apprendre à utiliser OpenSSH


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.

Tutoriels

Astuces

  • Pour forward d'un port TCP distant sur sa machine locale :
ssh -L 1234:127.0.0.1:22 toto@serveur.com

Ainsi :

ssh toto@localhost -p 1234
  • Pour forward d'un port UDP distant sur sa machine locale :

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.

Exemple de configuration

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é.

Sécurité SSH ?

Login Grace Time 1m
   Permit RootLogin no
   StrictModes yes
   MaxAuthTrico 3
   MaxSessions 3