Je suis paresseux à la maison et utilise l’authentification par mot de passe pour mes ordinateurs personnels. Je suis prêt à passer à l'authentification par clé. Il existe de nombreuses options sur le Web pour ce faire, y compris catting puis claquage de la clé, scping la clé directement, etc.
Je cherche le moyen le plus simple et le plus recommandé de copier une clé, avec un peu de chance qu'il y ait un wrapper de commodité quelque part dans le paquet ssh Ubuntu?
Je sais déjà comment désactiver les connexions par mot de passe .
Réponses:
La
ssh-copy-id
commande (dans le paquet openssh-client et installée par défaut) fait exactement ceci:copie la clé publique de votre identité par défaut (à utiliser
-i identity_file
pour d'autres identités) sur l'hôte distant.L'identité par défaut est votre clé ssh "standard". Il se compose de deux fichiers (clé publique et privée) dans votre
~/.ssh
répertoire, normalement nomméidentity
,id_rsa
,id_dsa
,id_ecdsa
ouid_ed25519
(et même avec.pub
), en fonction du type de clé. Si vous n'avez pas créé plus d'une clé ssh, vous n'avez pas à vous soucier de la spécification de l'identité, ssh-copy-id la choisira simplement automatiquement.Si 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 les guillemets de cette façon ( source ):la source
ssh-copy-id "user@host -p 6842"
brew install ssh-copy-id
et ensuite exécuter la commande.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 :
Je pensais encore à le poster ici, car c’est une bonne illustration de ce que l’on peut réaliser dans un code shell avec la puissance de
ssh
. Mais utiliser lessh-copy-id
est définitivement un moyen plus sûr de le faire correctement!Notez que si le dossier
.ssh
n'existe pas déjà, la commande ci-dessus échouera. En outre, lors de la création du fichier, il peut être préférable de définir une autorisation minimale possible (en lecture-écriture, pour le propriétaire uniquement). Voici une commande plus avancée:la source
.ssh
n'existe pas du côté distant.cat
n'est pas nécessaire - une redirection d'entrée normale suffit, par exemple< ~/.ssh/id_rsa.pub | ssh ...
Méthode graphique
la source
seahorse
.Sur Ubuntu, vous pouvez récupérer vos clés dans Launchpad:
Détails :
Collez le contenu de votre fichier de clé publique dans ce champ (y compris le commentaire). Une telle clé ressemble à:
Ici,
ssh-rsa
indique que la clé est une clé RSA,AAAAB3Nza .... UyDOFDqJp
la clé réelle etlekensteyn
le commentaire.Le package
ssh-import-id
doit être installé sur la machine, qui doit être accessible à distance. Ce paquet est installé avec leopenssh-server
paquet car c'est un paquet recommandé pouropenssh-server
. Après s’être assuré que celassh-import-id
a été installé sur la machine cliente, exécutez:Cela téléchargera la clé publique des serveurs du Launchpad via HTTPS, ce qui vous protégera des attaques MITM.
Sur Ubuntu Lucid et avant, vous pouvez accomplir la même chose avec:
La
echo
commande est nécessaire pour obtenir une nouvelle ligne après la ligne avec la clé SSH.la source
pour port personnalisé
L'option -i par défaut est ~ / .ssh / id_rsa.pub, si vous voulez une autre clé, indiquez le chemin de la clé après -i.
AVERTISSEMENT: Si vous n'avez pas écrit le -i, toutes les clés trouvées dans ~ / .ssh seront copiées.
la source
ssh-copy-id
fait exactement cela. Je ne sais pas pourquoi certaines des autres réponses ajoutent des informations inexactes. L'aide montre les éléments suivants:Je viens d'essayer ce qui suit sur le client Ubuntu 18.04 avec un serveur CentOS 7.6 et cela a fonctionné à merveille. L’exemple montre l’utilisation d’un port personnalisé
2222
et la spécification d’une clé publique sur~/.ssh/path-to-rsa.pub
Avant d’exécuter la commande, j’ai utilisé le
-n
commutateur à la fin pour effectuer un essai à blanc qui a confirmé que la commande fonctionnerait comme prévu. Une fois confirmé, j’exécutai à nouveau la commande comme ci-dessus, sans le-n
commutateur.la source