Mise en place d'une authentification par clé avec SSH

Dans cet article nous allons voir comment mettre en place une authentification par clé sous SSH sous Linux. L'avantage de cette authentification est l'absence de la saisir du mot de passe. Des commandes pourront directement être envoyé au serveur distant depuis le serveur client. 

Prérequis

Vous devez disposer du service SSH activé sur vos deux serveurs Linux

Vous devez autoriser l'authentification par clé sur vos serveur Linux

Procédure

MAJ - 01-10-2017

Serveur client : 192.168.10.78
Serveur distant : 192.168.10.79

On souhaite se connecter en SSH sur le serveur distant en s'authentifiant via une clé

Activer l'authentification par clé

Sur votre serveur distant

Editer le fichier /etc/ssh/sshd_config

# nano /etc/ssh/sshd_config

Variable PubkeyAuthentication doit être à YES

Création d'une clé pour l'authentification

Sur votre serveur client

Saisir la commande suivante

ssh-keygen

Valider les choix par défaut et ne pas mettre de passe phrase

ssh_auth1

Deux fichiers sont générés :

/root/.ssh/id_rsa = clé privé du client
/root/.ssh/id_rsa.pub = clé public du client

Autorisé la clé créée précédemment sur votre serveur distant

Sur votre serveur client

Saisir la commande suivante

ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.79

ssh_auth2

Vous pouvez maintenant tester si votre authentification fonctionne

# ssh root@192.168.10.79

ssh_auth3

Pour information

La commande suivante  "ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.79" copie le contenu du fichier /root/.ssh/id_rsa.pub dans le fichier /root/.ssh/authorized_keys du serveur distant

Exécution de commande SSH sur le serveur distant depuis le serveur client

Syntaxe : ssh@IP_DISTANT "COMMANDE"

Exemple :

# ssh root@192.168.10.79 "hostname"

ssh_auth4

En cas d'erreur

En fonction de la version du logiciel OpenSSH que vous utilisez, il est possible que l'authentification par clé soit refusée (en fonction du type de clé). Il est nécessaire de modifier la configuration de votre serveur SSH. Pour plus de détail, vous pouvez consulter l'article suivant :

SSH - userauth_pubkey: key type ssh-dss not in PubkeyAcceptedKeyTypes [preauth]

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *