====== Autologin SSH sous Linux ====== {{:linux:ssh.jpg?40 |}} 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