web-dev-qa-db-fra.com

Commande pour envoyer la clé publique à l'hôte distant

Je me souviens qu'il existe une commande pour envoyer la clé publique à l'hôte distant que je veux. Je souhaite utiliser cette fonctionnalité pour envoyer l'une de mes clés publiques à l'autre hôte. Comment puis je faire ça?

32
user482594

Vous recherchez ssh-copy-id. Tout ce que cette commande fait est de créer .ssh et .ssh/authorized_keys et de définir leurs autorisations correctement si elles n'existent pas. Ensuite, il ajoute votre clé publique à la fin de .ssh/authorized_keys.

51
cdhowie

Vous recherchez peut-être cette commande:

cat ~/.ssh/id_rsa.pub | ssh user@hostname 'cat >> .ssh/authorized_keys'

Il ajoute votre clé publique aux clés autorisées du serveur. 

La source

12
Flaudre

Si votre serveur est déjà configuré pour n'accepte pas la connexion basée sur un mot de passe , vous risquez d'obtenir une erreur Permission denied (publickey)

Ceci est une autre méthode pour envoyer la clé, en utilisant netcat, de sorte que vous n'avez pas à vous authentifier. Il ne fonctionnera que sur un réseau local, mais vous pouvez utiliser la redirection de port pour le faire sur Internet. 

Sur le serveur: 

$ nc -l 55555 >> ~/.ssh/authorized_keys

Sur le client (remplacez HOSTNAME par le nom d'hôte ou l'adresse IP du serveur):

$ nc HOSTNAME 55555 < ~/.ssh/id_rsa.pub

Vous pouvez remplacer 55555 par un port ouvert de votre choix. 

source: chatter sur lan de linux à linux?


Annexe pour le total des débutants: Je ne pense pas que quiconque ait déjà mentionné cela, mais si vous obtenez ERROR: failed to open ID file '/home/username/.pub': No such file, vous devez d'abord générer une clé. Les pages d’aide Ubuntu proposent un excellent guide sur Génération de clés RSA

1
Keith

La réponse choisie est correcte, mais voici un script bash simple pour ceux qui souhaitent combiner keygen + copy: https://Gist.github.com/wilcollins/bc420581da87962b8b47

Ce fichier crée une clé SSH sur un ordinateur client, applique les autorisations de fichier appropriées, les copie dans le répertoire local ~/.ssh et les copies sur le serveur spécifié.

0
wilco