Qu'est-ce que SSH ?
Protocole (et commande) qui chiffre les communications pour se connecter à un autre ordinateur par le réseau et y exécuter des commandes. Le serveur écoute par défaut sur le port TCP 22. Pour l'authentification, outre les mots de passe, on utilise beaucoup l'authentification par clé publique : la clé publique qui correspond à la clé privée de l'utilisateur est enregistrée dans le fichier ~/.ssh/authorized_keys du serveur. Sur la même connexion, on peut aussi transférer des fichiers avec scp ou rsync et rediriger des ports.
Nom japonais: SSH
« SSH » apparaît dans 3 questions d'entraînement réparties sur 2 thèmes, dont Bases de Linux et de la ligne de commande, Bases des réseaux informatiques.
Domaine: Bases de Linux et de la ligne de commande
Vérifier le serveur
À la première connexion, ssh montre l'empreinte de la clé d'hôte du serveur et, si on l'accepte, l'enregistre dans ~/.ssh/known_hosts. Par la suite, si une clé différente de celle enregistrée est présentée, il affiche un avertissement et s'arrête, ce qui permet de repérer un serveur qui se fait passer pour un autre. Si l'avertissement apparaît sans raison, par exemple sans que le serveur ait été remplacé, il ne faut pas poursuivre la connexion.
Usage dans le travail de conception
Depuis leur PC, les utilisateurs se connectent avec ssh aux serveurs de calcul qui exécutent les outils EDA, pour y lancer des simulations et en vérifier les résultats. En écrivant dans ~/.ssh/config les alias des hôtes, les noms d'utilisateur, les fichiers de clés et les serveurs intermédiaires (ProxyJump), on peut se connecter avec un simple ssh server1. Les outils à interface graphique s'utilisent en combinaison avec le transfert X11 ou avec des mécanismes de bureau à distance.
Questions fréquentes
La connexion échoue avec le message « Permission denied (publickey) ». Que faut-il vérifier ?
Il faut vérifier que la clé publique qui correspond à la clé privée utilisée est enregistrée dans le fichier ~/.ssh/authorized_keys du serveur, et que le nom d'utilisateur est correct. Si les permissions de ~/.ssh ou d'authorized_keys sur le serveur sont trop larges (accessibles en écriture à d'autres), la clé peut être refusée par sécurité : on règle donc par exemple ~/.ssh sur 700 et authorized_keys sur 600. Avec ssh -v, on voit quelles clés ont été essayées.
Comment choisir entre scp et rsync ?
Les deux transfèrent des fichiers par-dessus ssh. scp convient aux copies simples, tandis que rsync n'envoie que les différences avec la destination : il est donc efficace pour synchroniser de façon répétée de gros répertoires ou reprendre un transfert interrompu. Utilisé sous la forme rsync -av --delete, il rend la destination identique à la source, mais --delete supprime les fichiers qui n'existent que dans la destination : il faut donc être prudent.