Connexion SSH par clef

Pour configurer l’authentification par clef SSH, il faut bien paramétrer les droits sur le poste auquel on veut se connecter, sous peine de se faire éjecter d’office !

Pour l’utilisateur connecté :

mkdir ~/.ssh/
chmod 700 ~/.ssh
touch $HOME/.ssh/authorized_keys
chmod 600 $HOME/.ssh/authorized_keys
chown `whoami` ~/.ssh/authorized_keys

Dans le fichier authorized_keys, il faut ajouter sa clef publique en faisant attention de ne pas insérer de retour à la ligne.

Il faut également bien veiller à ce que la connexion par clef soit autorisée dans le fichier /etc/ssh/sshd_config :

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile        %h/.ssh/authorized_keys

Il faut relancer SSH après la manipulation :

service ssh restart

Si vous souhaitez désactiver la connexion par mot de passe pour tous les comptes :

PasswordAuthentication no

Désactiver la connexion root :

La connexion du compte root est en général une mauvaise idée, il vaut mieux passer par un compte secondaire qui passera en mode super-utilisateur lorsque nécessaire.

Dans le fichier /etc/ssh/sshd_config :

PermitRootLogin no

Attention, dans le cas d’un serveur OVH, il faut laisser la possibilité à OVH de se connecter via leur clef. Pour cela, on ajoute uniquement les clefs OVH dans le fichier /root/.ssh/authorized_keys et on modifie le paramètre dans le fichier /etc/ssh/sshd_config :

PermitRootLogin without-password

Génération de clef SSH :

ssh-keygen -t rsa -b 4096 -C "email@domaine.tld"