432 votes

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 sur comment désactiver les connexions par mot de passe .

1 votes

12voto

Victor Timoftii Points 220

Voici une solution moins sûre, mais très simple (non recommandée pour les serveurs) :

Déplacements ~/.ssh sur la nouvelle machine et exécutez ssh-add . FAIT !

LONGUE RÉPONSE :

  1. Dans l'ancienne machine, prenez le dossier ~/.ssh sur une clé USB, ou sur tout autre support de stockage de votre choix.
  2. Sur la nouvelle machine, placez le dossier sous ~ alias /home/$USER .
  3. Exécuter ssh-add sur la nouvelle machine.

3 votes

Important à ajouter, assurez-vous de restaurer les permissions sur les fichiers, sudo chmod 600 ~/.ssh/id_rsa sudo chmod 600 ~/.ssh/id_rsa.pub sudo chmod 644 ~/.ssh/known_hosts et sur le dossier, si le dossier entier a été copié sudo chmod 755 ~/.ssh

1 votes

Vous ne voulez certainement pas le faire de cette façon. En faisant cela, vous ne copiez pas seulement votre clé publique, mais aussi votre clé privée ! C'est particulièrement dangereux lorsque l'autre machine est partagée avec d'autres utilisateurs disposant des privilèges root. Ils auront accès à votre clé privée !

1 votes

Veuillez mettre à jour votre post - votre solution EST BONNE pour copier les clés ssh pour votre autre machine de travail (par exemple de l'ordinateur de bureau à l'ordinateur portable) mais mauvaise idée de le faire pour un hôte vivant. \server (c'est pourquoi les autres réponses sont "trop compliquées"). Et merci pour votre réponse - elle a fonctionné pour moi aussi.

3voto

erg39 Points 197

ssh-copy-id fait exactement cela. Je ne sais pas pourquoi certaines des autres réponses ici ajoutent des informations inexactes. L'aide indique ce qui suit :

~$ ssh-copy-id -h
Usage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname
    -f: force mode -- copy keys without trying to check if they are already installed
    -n: dry run    -- no keys are actually copied
    -h|-?: print this help

Je viens d'essayer ce qui suit sur un client Ubuntu 18.04 avec un serveur CentOS 7.6 et ça a marché comme sur des roulettes. L'exemple montre l'utilisation d'un port personnalisé de 2222 et en spécifiant une clé publique à ~/.ssh/path-to-rsa.pub

$ ssh-copy-id -i ~/.ssh/path-to-rsa.pub -p 2222 myusername@hostname.tld

Avant d'exécuter la commande, j'ai en fait utilisé le -n à la fin pour faire un essai qui a confirmé que la commande fonctionne comme prévu. Une fois que je l'ai confirmé, j'ai relancé la commande comme ci-dessus, sans l'interrupteur -n interrupteur.

0voto

Küñdàñ Börà Points 101

Si vous disposez déjà d'une clé d'hôte, comme dans le cas d'AWS EC2, procédez comme suit

cat ~/.ssh/id_rsa.pub | ssh -i hostkey.pem hostname@hostaddress 'cat >> .ssh/authorized_keys && echo "Key copied" '

La prochaine fois, faites simplement ceci :

ssh hostname@hostaddress

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X