web-dev-qa-db-fra.com

Comment ssh à EC2 sans explicitement utiliser la clé PEM?

J'ai une fenêtre comme mon système d'exploitation principal. Utilisation de VMware Player, j'ai configuré un serveur Ubuntu 12.4 en tant que machine invité. Le serveur Ubuntu a un utilisateur "Ubuntu".

J'ai créé une nouvelle instance EC2 + SETUP PEM PEM. De la machine Windows, lorsque j'utilise Puty + Pem Touche - je peux ssh.

J'ai ajouté la clé PEM à mon serveur VMware Ubuntu (/home/ubuntu/.ssh/) en plus, je définit les autorisations suivantes: chmod 700 /home/ubuntu/.sshchmod 600 /home/ubuntu/.ssh/*

À travers le serveur Ubuntu, j'ai essayé de ssh à l'instance EC2 sans succès: ssh ubuntu@EC2_IP Permission denied (publickey). Si j'utilise explicite la touche PEM, cela fonctionne: ssh -i /home/ubuntu/.ssh/NAME.pem ubuntu@EC2_IP - Veuillez noter que je dois utiliser le chemin direct vers la clé, sinon, je vais obtenir Warning: Identity file NAME.pem not accessible: No such file or directory. Permission denied (publickey).

S'il vous plaît donnez votre avis. Merci!

22
user798562

Ajoutez la touche PEM EC2 à SSH

ssh-ajouter ~/.ssh/key_pair_name.pem

20
nadavkav

Par défaut, le client SSH recherchera des clés nommées id_rsa, id_dsa et id_ecdsa dans ~/.ssh/. Si votre clé n'est pas nommée comme si vous avez besoin de la spécifier sur la ligne de commande avec -i Comme vous l'avez fait, ou spécifiez-le dans la configuration du client.

Vous pouvez ajouter quelque chose comme ça à ~/.ssh/config Pour sélectionner automatiquement cette clé quand un assosse à EC2:

Host *.compute-1.amazonaws.com
    IdentityFile ~/.ssh/ec2_rsa
19
mgorven

Comment nommez-vous votre clé privée? Il devrait avoir un nom de fichier id_rsa par défaut (renommer le fichier PEM à /home/ubuntu/.ssh/id_rsa)

2
Andrei Mikhaltsov

Vous pouvez utiliser ssh-agent et ssh-add Pour éviter de spécifier la clé privée explicitement.

Vous pouvez mettre les commandes dans votre .profile ou .bashrc Donc, ils sont exécutés chaque fois que vous vous connectez. Vous pouvez trouver un exemple de script de démarrage au bas de ce post .

1
David Levesque

Le client SSH cherche identify file Basé sur le jeu de configuration dans /etc/ssh/ssh_config. Vous pouvez donc spécifier le fichier d'identité et rappelez-vous que vous pouvez avoir plusieurs fichiers d'identité répertoriés dans le fichier de configuration du client SSH. De la page homme SSH -

    -i identity_file
         Selects a file from which the identity (private key) for public key authentication is read.  The default is ~/.ssh/identity
         for protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and ~/.ssh/id_rsa for protocol version 2.  Identity files may also
         be specified on a per-Host basis in the configuration file.  It is possible to have multiple -i options (and multiple identiâ
         ties specified in configuration files).

Pour la clé RSA, par exemple, l'emplacement par défaut est ~/.SSH/ID_RSA. Comme l'a suggéré Andrei Mikhaltsov, vous pouvez placer votre clé privée dans/home/ubuntu/ssh/id_rsa et pourra vous connecter sans le spécifier à la ligne de commande. Si ce nom de fichier existe déjà et contient une autre clé privée, vous pouvez toujours personnaliser votre fichier de configuration client SSH sur le paramètre IdentityFile.

0
Daniel t.