245 votes

Comment ajouter des clés SSH au fichier authorized_keys ?

J'ai un serveur Ubuntu sur Amazon EC2, que j'utilise pour le développement, et aujourd'hui, j'ai stupidement tout effacé de ma ~/.ssh/authorized_keys fichier. Heureusement, j'ai un SSH ouvert, donc je suis toujours connecté, et je peux réparer le fichier, mais quand j'essaie de remettre mon fichier clé, ça ne fonctionne pas. Je reçois toujours un refus de permission du serveur sur ma machine locale.

authorized_keys a les permissions 600. J'ai essayé d'ajouter ma clé SSH avec ssh-rsa et de laisser ssh-rsa désactivé. J'ai également essayé d'ajouter la clé SSH sur une seule ligne, mais cela n'a pas fonctionné non plus.

Y a-t-il quelque chose d'autre que je doive faire, comme recharger le fichier ?

249voto

Lekensteyn Points 162346

Vous devez jamais enregistrer le fichier avec son contenu commençant par -----BEGIN RSA PRIVATE KEY----- sur le serveur, c'est votre privé clé. Au lieu de cela, vous devez mettre la touche public dans le ~/.ssh/authorized_keys fichier.

Ce site public a l'attribut .pub lorsqu'elle est générée à l'aide de ssh-keygen et son contenu commence par ssh-rsa AAAAB3 . (Le format binaire est décrit dans les réponses aux questions suivantes cette question ).

Les permissions de ~/.ssh sur le serveur devrait être de 700. Le fichier ~/.ssh/authorized_keys (sur le serveur) est censé avoir un mode de 600. Les autorisations de la clé (privée) du côté client doivent être de 600.

Si la clé privée n'était pas protégée par un mot de passe, et que vous l'avez mise sur le serveur, je vous recommande d'en générer une nouvelle :

ssh-keygen -t rsa

Vous pouvez ignorer cette étape si vous êtes totalement sûr que personne ne peut récupérer la clé privée supprimée sur le serveur.

Si cela ne vous aide pas, exécutez ssh avec des options pour plus de verbosité :

ssh -vvv user@example.com

Du côté du serveur, vous pouvez examiner /var/log/auth.log pour les détails.

222voto

Chris Points 945

Une autre façon d'installer votre clé publique dans le répertoire de la machine distante est d'installer votre clé publique dans le répertoire de la machine distante. authorized_keys :

cat ~/.ssh/id_rsa.pub | ssh USER@HOST "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Quelques avantages :

  • ne nécessite pas ssh-copy-id à installer.

  • garantit que mkdir fonctionne avant de tenter d'ajouter id_rsa.pub à authorized_keys .

153voto

georg Points 1742

Si vous avez une authentification basée sur la connexion, utilisez ssh-copy-id pour ajouter vos clés publiques au serveur distant.

ssh-copy-id user@host

43voto

BaronGrivet Points 95
local> scp .ssh/id_rsa.pub remote.com:
local> ssh remote.com
remote> cat id_rsa.pub >> .ssh/authorized_keys
remote> rm id_rsa.pub
remote> exit

21voto

Tod Thomson Points 1145

Le moyen le plus simple est de copier et coller...

Commencez par visualiser/copier le contenu de votre clé publique locale id_rsa.pub en incluant le début "ssh-rsa" jusqu'à ce qu'il se termine par votre adresse électronique :

cat ~/.ssh/id_rsa.pub

Puis modifier authorized_keys sur le serveur et collez le contenu de votre presse-papiers sous toutes les autres clés de ce fichier :

nano ~/.ssh/authorized_keys

Et sauver Ctl+O quitter le fichier Ctl+X quitter la session SSH exit et essayez de vous reconnecter pour confirmer que ça a marché. Si le mot de passe n'est pas demandé, c'est que la connexion a fonctionné.

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