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 !

Génération d’une clef SSH :

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

Activation de la connexion

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 :

systemctl restart ssh

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

Remarque

Dans le cas d’un serveur OVH, il faut laisser la possibilité à OVH de se connecter via leur clef pour qu’ils puissent intervenir en cas de soucis. (Ce n’est pas obligatoire mais conseillé)

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