Commande pour envoyer la clé publique à l'hôte distant
Je me souviens qu'il y a une commande pour envoyer une clé publique à l'hôte distant que je veux. Je veux utiliser cette fonctionnalité pour envoyer l'un de mes clés publiques à l'autre hôte. Comment puis-je le faire?
4 réponses
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 de manière appropriée si elles n'existent pas. Puis il ajoute votre clé publique à la fin de .ssh/authorized_keys
.
Si votre serveur est déjà configuré pour l' accepte pas le mot de passe de connexion de type, vous pourriez obtenir un Permission denied (publickey)
erreur.
C'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: chat sur lan de linux à linux?
Annexe pour Total newbies: Je ne pense pas que quelqu'un ait encore 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 D'Ubuntu ont un excellent guide sur la génération de clés RSA .
La réponse sélectionnée est correcte, mais voici un script bash simple pour tous ceux qui veulent 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, copie le ~ / local.répertoire ssh, & copie sur le serveur spécifié.