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 ?

6voto

Sarel Botha Points 161

Obtenez un Shell sur la machine distante où vous voulez mettre la clé et ensuite vous pouvez exécuter ce one-liner pour créer les fichiers et répertoires nécessaires, définir leurs permissions et ajouter la clé au fichier. Bien entendu, vous devez modifier le paramètre KEYGOESHERE partie ci-dessous et le commentaire qui suit.

mkdir -p ~/.ssh && chmod 700 ~/.ssh && touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && echo "ssh-rsa KEYGOESHERE user@remotehost or note" >> ~/.ssh/authorized_keys

5voto

eco Points 159

J'ai pensé que je pouvais apporter ma contribution à ce sujet puisqu'il s'agit spécifiquement d'instances AWS et que toutes les réponses traitent le problème comme un problème de Linux, comme s'il s'agissait d'une pièce de matériel. La première chose que vous devez comprendre est que vous ne devez jamais, jamais, ne pas traiter les instances EC2 comme du matériel. Cela va juste créer plus de travail pour vous Les traiter comme des volatiles. C'est le plus gros obstacle que je vois les gens avoir avec AWS. Créez une AMI de votre instance et injectez la clé dont vous avez besoin dans la nouvelle instance. cloud-init s'en chargera pour vous. Pour être plus précis, tout ce que vous avez à faire est d'utiliser la bonne clé publique lors de la création de la nouvelle instance à partir de l'AMI de l'original. Si, comme dans les commentaires de la réponse approuvée, vous souhaitez générer votre propre paire de clés composée de fichiers pub et pem, AWS vous offre la possibilité de télécharger vos clés publiques pour les utiliser dans EC2.

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#how-to-generate-your-own-key-and-import-it-to-aws

3voto

Warrior Points 1481

Après avoir enregistré la clé publique, vous devez enregistrer la clé privée dans un répertoire et un fichier sur votre ordinateur. Et dans la section authentification de ssh sur putty, vous devez pointer vers le fichier de clé privée que vous avez enregistré sur votre bureau. Cela fonctionnera. Cela fonctionne pour moi.

1voto

jlmontes Points 53

Voici une variante dans laquelle vous pouvez avoir une liste de noms de fichiers de clés publiques dans un fichier texte et le grand lot de fichiers de clés publiques se trouve également dans le même répertoire.

Cette variante peut être utile si vous devez importer une liste importante de fichiers de clés publiques :-)

$ for i in $(cat ListOfPubKeyFiles.txt) ; do cat $i | ssh User@Hostname "cat >> ~/.ssh/authorized_keys"; done

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