Autologin SSH sous Linux

Quand on se connecte par ssh à un serveur, on a l'habitude de saisir un identifiant et un mot de passe. Mais quand le nombre de serveur à gérer augmente on ne se souvient plus toujours de ces derniers. Il est heureusement possible d'enregistrer son identification pour ne plus avoir à resaisir le mot de passe, ou si vous voulez garder un minimum de sécurité, faire en sorte d'en utiliser plus qu'un seul.

Pour éviter cela, nous devons faire 2 choses :

  • Créer un jeu de clés (clé publique et clé privée) sur le client
  • Copier la clé publique du client sur le serveur.

Générer le jeu de clé/certificat sur le client

ssh-keygen -t rsa

La génération demandera où placer le jeu, répondez la valeur par défaut (faites entrer).

La génération demandera également une passphrase, c'est ici que vous pouvez définir le même mot de passe pour toutes vos connexions. Si vous êtes seul à utiliser votre poste et que vous êtes confiant dans sa sécurité vous pouvez laisser vide et faire entrer.

Copiez la clé publique sur le serveur

Il faut maintenant envoyer la clé publique sur le serveur, on utilise la commande ssh-copy-id :

ssh-copy-id -i ~/.ssh/id_rsa.pub username@distantserver.domain.tld

Voila, vous pouvez désormais vous identifier sur le serveur sans ressaisir votre mot de passe ou en utilisant le mot de passe que vous avez défini.

En cas de soucis

Il est possible que les clés RSA ne suffisent plus, dans ce cas il faut générer une clé ECDSA :

ssh-keygen -t ecdsa -b 521
ssh-copy-id -i ~/.ssh/id_ecdsa.pub username@distantserver.domain.tld

Ça ne veut pas se connecter ? Pas de panique c'est souvent une question de droits, il suffit d'exécuter ces quelques lignes sur le serveur

chmod go-w $HOME $HOME/.ssh
chmod 600 $HOME/.ssh/authorized_keys 
chown `whoami` $HOME/.ssh/authorized_keys
  • Dernière modification: 17/08/2022 10:26