Utiliser des clefs avec ssh
Créer des clefs pour vous connecter vos serveurs en SSH et, par sécurité, interdire la connexion par mot de passe.
Créer une clef
Tapez simplement sur la machine cliente, depuis votre session utilisateur:
$ ssh-keygen -t ed25519 -f ma_clef_ca
Vous allez obtenir deux fichiers, que vous pouvez consulter par curiosité:
ma_clef_ca
, clef privée à conserver dans~/.ssh
ma_clef_ca.pub
, clef publique à communiquer sur la cible
Par défaut, le commentaire de la clef publique sera utilisateur@machine.tds
, vous pouvez le changer avec l'option -C
.
Copiez la clef publique sur le serveur et ajoutez dans la liste des clefs autorisées de l'utilisateur cible:
$ cat ma_clef_ca.pub >> ~david/.ssh/authorized_keys
Supprimez ensuite le fichier contenant clef publique.
Serveur SSH
N'autorisez que la connexion par clefs, pour le serveur sshd(8):
- /etc/ssh/sshd_config
PasswordAuthentication no PermitEmptyPasswords no # Change to no to disable PAM authentication KbdInteractiveAuthentication no
Connexion
Il suffit d'appeler la connexion normalement, ou, si vous avez multiplié les utilisateurs et les clefs:
ssh -i ~toto/.ssh/id_rsa_bidule toto@farfaraway.ddns.net
Client SSH
Vous allez probablement multiplier les clients et les cibles. Pour vous y retrouver, créer dès le premier usage une entrée dans le fichier de configuration ssh, ssh_config(5), de votre utilisateur:
Host git.lapinbilly.eu HostName poypoy.lapinbilly.eu IdentityFile ~/.ssh/clef_ed port 6666