Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. <jumbotron> ====== 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. </jumbotron> ===== Créer une clef ===== Tapez simplement sur la machine cliente, depuis votre session utilisateur: <code bash> $ ssh-keygen -t ed25519 -f ma_clef_ca </code> 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: <code bash> $ cat ma_clef_ca.pub >> ~david/.ssh/authorized_keys </code> Supprimez ensuite le fichier contenant clef publique. <callout type="info"> Ou, puisque vous savez maintenant ce qu'il faut obtenir, utilisez le [[https://www.ssh.com/ssh/copy-id|racourci copy-id]]. </callout> ===== Serveur SSH ===== N'autorisez que la connexion par clefs, pour le serveur sshd(8): <file sshconfig /etc/ssh/sshd_config> PasswordAuthentication no PermitEmptyPasswords no # Change to no to disable PAM authentication KbdInteractiveAuthentication no </file> === Connexion === Il suffit d'appeler la connexion normalement, ou, si vous avez multiplié les utilisateurs et les clefs: <code bash> ssh -i ~toto/.ssh/ma_clef_ca toto@farfaraway.ddns.net </code> ===== ssh-agent ===== Cet [[https://man.freebsd.org/cgi/man.cgi?query=ssh-agent&arch=default&format=html|outil]] va définir une session où vos clefs seront enregistrées et validées. <code bash> ssh-agent zsh ssh add .ssh/ma_clef_ca Enter passphrase for .ssh/ma_clef_ca: Identity added: .ssh/ma_clef_ca (david@maclef.net) </code> A partir de ce moment et jusqu'à la fin de la session, vos clefs seront automatiquement transmises à ''ssh''. Dans un script, il faut //obtenir// une sessions. <code bash> eval `ssh-agent -s` ssh-add .ssh/ma_clef_ca </code> ===== 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: <file sshconfig .ssh/config> Host git.lapinbilly.eu HostName poypoy.lapinbilly.eu IdentityFile ~/.ssh/ma_clef_ca Port 6666 AddKeysToAgent yes </file> L'option '''AddKeysToAgent''' va automatiquement enregistrer cette clef auprès de '''ssh-agent''' lors de la première connexion '''ssh'''. ===== En savoir plus ===== <alert type="info"> * [[https://www.ssh.com/ssh/key/|La documentation de SSH]] </alert> net/ssh.txt Dernière modification : 2023/12/20 18:11de david