Se connecter au serveur SSH (distant) à partir du client SSH (local) par clé publique¶
Ce que l'on va faire ici¶
Nous allons voir ici comment se connecter au serveur SSH (distant) à partir du poste client SSH (local) automatiquement grâce à l'installation d'une clé publique.
Info
Une fois faite, cette procédure n'est pas à répéter pour un client donné.
Dans quel cas ?¶
Lorsque l'on veut éviter d'avoir à saisir son mot de passe à chaque connexion.
Lorsque l'on souhaite sécuriser l'accès par SSH à partir d'un poste donné. Ceci évite les connexions par d'autres postes, surtout si on bloque l'accès par mot de passe.
La procédure¶
Génération d'une paire de clé publique / privée¶
On commence par générer une paire de clé publique / privée sur le poste client. ATTENTION, CECI N'EST A FAIRE QUE SI VOUS N'AVEZ PAS DEJA DE PAIRE DEJA CREEE ! Sinon, vous risquez de désactiver des services qui utilise votre paire de clé actuelle. Soyez conscient de ce que vous faîtes dans ce cas.
ssh-keygen -t dsa
Envoi de la clé sur le poste serveur SSH¶
Ensuite, on envoie la clé publique sur le poste serveur SSH avec la commande :
ssh-copy-id -i ~/.ssh/id_rsa.pub user@ipserveur
où :
- -i chemin : indique la clé à utiliser. Ici, clé par défaut générée précédemment
- user@ipserveur : utilisateur et adresse ip du serveur SSH
Saisir le mot de passe quand on vous le demande. Une fois fait, on peut rebooter et la connexion se fera automatiquement au prochaine connexion ssh.
+/- empêcher connexion par mot de passe sur le serveur SSH.¶
C'est une étape de sécurisation maximale, qui n'est pas forcément souhaitable, mais possible. Sur le serveur SSH, on éditera le fichier suivant :
sudo nano /etc/ssh/sshd_config
Ensuite, chercher les options PasswordAuthentication
et PubkeyAuthentication
que l'on mettra respectivement à No et Yes. Enregistrer le fichier.
Une fois fait, il ne sera pas possible de se connecter par mot de passe par SSH. La connexion ne sera possible que depuis le poste qui a la clé publique enregistrée.
Voir cette page assez complète sur le sujet : https://www.malekal.com/securiser-serveur-ssh/
Pour relancer :
sudo /etc/init.d/ssh restart