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?
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
.
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.
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 .
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é.