Le moyen le plus simple de copier des clés ssh sur une autre machine ?

Je suis paresseux à la maison et j'utilise l'authentification par mot de passe pour mes machines domestiques. Je suis prêt à passer à l'authentification par clé. Il existe de nombreuses options sur le web sur la façon de le faire, y compris le chat puis le sshing de la clé, scping la clé directement, etc.

Je cherche le moyen le plus simple et le plus recommandé de copier une clé, en espérant qu'il y ait une enveloppe pratique quelque part dans le paquet ssh d'Ubuntu ?

Je suis déjà au courant de [comment désactiver les connexions par mot de passe][1].

[1] : https://askubuntu.com/questions/1991/disable-password-access-through-ssh

ssh
Solution

La commande ssh-copy-id (dans le paquet openssh-client et installée par défaut) fait exactement cela :

ssh-copy-id user@hostname.example.com

copie la clé publique de votre identité par défaut (utilisez -i identity_file pour les autres identités) sur l'hôte distant.

L'identité par défaut est votre clé "standard&quot ; ssh. Elle consiste en deux fichiers (clé publique et privée) dans votre répertoire ~/.ssh, normalement nommés identity, id_rsa, id_dsa, id_ecdsa ou id_ed25519 (et pareil pour .pub), selon le type de clé. Si vous n'avez pas créé plus d'une clé ssh, vous n'avez pas à vous soucier de spécifier l'identité, ssh-copy-id la choisira automatiquement.

Dans le cas où vous n'avez pas d'identité, vous pouvez en générer une avec l'outil ssh-keygen.

De plus, si le serveur utilise un port différent de celui par défaut (22), vous devez utiliser des guillemets de cette manière ([source][1]) :

ssh-copy-id "user@hostname.example.com -p "

[1] : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=99785

Commentaires (8)

J'aime la réponse de Marcel. Je ne connaissais pas cette commande. J'ai toujours utilisé ce que j'avais trouvé sur le site web d'Oracle :

cat ~/.ssh/id_rsa.pub | ssh @ 'cat >> .ssh/authorized_keys && echo "Key copied"'

J'ai pensé à le poster ici quand même, car c'est une bonne illustration de ce que l'on peut réaliser en code shell avec la puissance de ssh. Mais utiliser le ssh-copy-id est définitivement un moyen plus sûr de le faire correctement !

Notez que si le dossier .ssh n'existe pas encore, la commande ci-dessus échouera. De plus, il peut être préférable, lors de la création du fichier, de définir une permission minimale possible (en gros, lecture-écriture pour le propriétaire uniquement). Voici une commande plus avancée :

cat ~/.ssh/id_rsa.pub | ssh @ 'umask 0077; mkdir -p .ssh; cat >> .ssh/authorized_keys && echo "Key copied"'
Commentaires (5)

Méthode graphique

  1. Ouvrez ApplicationsMots de passe et clésMes clés personnelles.
  2. Sélectionnez votre clé, puis cliquez sur RemoteConfigurer la clé pour Secure Shell.

![Configurer l'ordinateur pour la connexion SSH][1]

[1] : http://i.stack.imgur.com/5HXi2.png

Commentaires (5)