Sommaire
https://www.digitalocean.com/community/tutorials/how-to-use-ssh-to-connect-to-a-remote-server-fr
Introduction

SSH, ou Secure Shell, est un protocole utilisé pour se connecter en toute sécurité à des systèmes distants. C’est le moyen le plus courant d’accéder à des serveurs Linux distants.
Installation
On installe ‘openssh-server’ sur la machine à laquelle on veut avoir accès (machine serveur) depuis le PC local (machine cliente) ; le programme client ‘openssh-client est normalement préinstalléapt install openssh-server
Lors de l’installation, un couple de clefs RSA est généré et stocké dans le répertoire /etc/ssh :
– Le fichier ssh_host_rsa_key contient la clef privée et a les permissions 600
– Le fichier ssh_host_rsa_key.pub contient la clé publique et a les permissions 644
Authentification
Par mot de passe
Par clefs
C’est la méthode la plus sure
Au lieu de s’authentifier par mot de passe, les utilisateurs peuvent s’identifier grâce à la cryptographie asymétrique et son couple de clefs privée/publique (comme le fait le serveur SSH auprès du client SSH)
Générer ses clefs
Note : pour repartir d’une configuration propre concernant les paramètres SSH : sur le serveur, effacer ce qui se trouve dans le fichier ~/.shh/authorized_keys et sur la machine cliente, supprimer les fichiers (s’ils existent) du dossier ~/.ssh : known_hosts, id_rsa et id_rsa.pub; (et le faire dans cet ordre : serveur, puis seulement après client !)
Pour générer un couple de clefs RSA, taper sur la machine cliente : ssh-keygen -t rsa
La clef privée est stockée dans le fichier ~/.ssh/id_rsa avec les permissions 600
La clef publique est stockée dans le fichier ~/.ssh/id_rsa.pub avec les permissions 644
Lors de la création, openssh demande une pass phrase qui est un mot de passe pour protéger la clef privée; cette pass phrase sert à chiffrer la clef privée, elle sera demandée à chaque utilisation de la clé privée, c’est à dire à chaque fois qu’on se connecte en utilisant cette méthode d’authentification
(Pour modifier la pass phrase, il suffit de taper ssh-keygen -p
)
Autoriser la clef publique
Pour cela, il faut copier la clef publique dans le fichier ~/.shh/authorized_keys de la machine sur laquelle on veut se connecter:ssh-copy-id -i ~/.ssh/id_rsa.pub -p PortSSH login@IP_serveurSSH
Se connecter
C’est la meme commande que pour une authorisation par mot de passe :ssh login@IP_serveurSSH -p portSSH
La pass phrase pour décoder la clef privée est alors demandée
Se connecter sans avoir à entrer la pass phrase
La machine cliente demande la pass phrase à chaque utilisation des clefs pour s’authentifier;
Pour éviter d’avoir à taper systématiquement sa pass phrase, on peut utiliser un petit programme : ssh-agent ; ce programme tourne en tache de fond et garde la clef en mémoire
La commande ssh-add permet de donner sa clef à ssh-agent; quand une connexion ssh est demandée depuis la machine cliente, il contacte ssh-agent pour qu’il lui donne la clef
(Sur la plupart des systèmes linux, ssh-agent est automatiquement lancé au démarrage (sinon, on peut le lancer manuellement avec la commande eval 'ssh-agent'
)
On tape donc sur la machine cliente ssh-add
, la pass phrase est demandée
Maintenant que la clef a été transmise à l’agent, on peut se connecter sans mot de passe à toutes les machines sur lesquelles la clef publique a été copiée dans le fichier ~/.ssh/authorized_keys
Note : parfois, ssh-agent ne se lance pas automatiquement à chaque boot
Pour vérifier si il est actif : taper echo $SSH_AGENT_SOCK
: si une chaine vide est renvoyée, c’est qu’il n’est pas actif
Pour le lancer : eval 'ssh-agent'
# ici entrer la pass phrase
ssh-add
On peut alors se connecter en ssh sans entrer de mot de passe sur toutes les machines ou la clé publique à été copiée dans le fichier ~/.shh/authorized_keys (jusqu’au prochain reboot…donc les 2 commandes ci-dessus à effectuer à chaque boot)
Conclusion
Si le serveur SSH est connecté à internet, il est préférable d’utiliser l’authentification par clefs et de désactiver l’authentification par mot de passe car des scanners balayent sans cesse la toile