Comment configurer l'accès SSH pour une instance Amazon EC2?


87

J'ai besoin d'un accès SSH à une instance Amazon EC2 exécutant Ubuntu 10.4. Tout ce que j'ai, c'est le nom d'utilisateur et le mot de passe Amazon. Des idées?


2
N'oubliez pas d'exécuter chmod 400 my_private_key.pem.txt après l'avoir téléchargé.
Peter Kaminski

Réponses:


159

Fondamentalement, vous avez besoin d'un fichier de clé privée pour vous connecter à votre EC2 via SSH. Suivez ces étapes pour en créer un:

  • Allez sur https://console.aws.amazon.com/ec2/home et connectez-vous à votre compte Amazon existant.
  • Cliquez sur "Paires de clés" sur LHS ou https://console.aws.amazon.com/ec2/home?region=us-east-1#s=KeyPairs .
    • Vous devriez voir la liste des clés générées par vous (ou pendant le processus de création EC2).
    • Cliquez sur "Créer une paire de clés" si vous n'en voyez pas ou si vous avez perdu votre clé privée.
    • Entrez un nom unique et appuyez sur Entrée.
    • Un panneau de téléchargement apparaîtra pour que vous puissiez enregistrer la clé privée, enregistrez-la.
    • Conservez-le quelque part avec l'autorisation de fichier "0600"
  • Cliquez sur "Instances" sur LHS ou https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instances
    • Vous devriez voir la liste des instances ec2, si vous n'en voyez pas, veuillez en créer une.
    • Cliquez sur la machine EC2 et notez l'adresse DNS publique.
  • Ouvrez votre terminal (sous Linux) et tapez la commande suivante
    • ssh -i /path/to/private-key root@<ec2-public-dns-address>- le nom d'utilisateur racine a été évité dans les dernières versions, en fonction de votre sélection de distribution ec2-userou ubuntude votre nom d'utilisateur.
    • appuyez sur Entrée
    • C'est tout.

6
Vous ne pouvez probablement pas vous connecter en tant que root directement via ssh. Vous devrez utiliser un compte non root tel que ec2-user donc 'ssh -i / path / to / private-key ec2-user @ hostname
timbo

4
Une fois que j'ai essayé de me connecter, il m'a dit que je devrais utiliser ubuntulogin au lieu de root. Apparemment, j'ai une instance du serveur ubuntu 12.04.
Vasiliy Stavenko

3
J'ai créé avec succès un compte SSH, ensuite comment télécharger des fichiers à l'aide de SCP avec le compte créé ??? Lorsque j'essaye de télécharger en utilisant SCP, il est dit "Autorisation refusée (publickey)".
Ashok KS

5
obtenez toujours ce massage "Autorisation refusée (publickey)." Pourquoi donc?
Kasun Kariyawasam

2
Vous obtenez tous "Autorisation refusée (publickey)". utilise peut-être Elastic Beanstalk. Si tel est le cas, vous devez accéder à EB env Config, Security et choisir la nouvelle paire de clés. De nouvelles instances EC2 seront créées qui acceptent la clé. Et le nom d'utilisateur est ec2-userou peut ubuntu- être , mais pas root.
Jorge Orpinel

25
ssh -i /path/to/private-key ubuntu@<ec2-public-dns-address>

utilisez simplement à la ubuntuplace de root. Votre problème sera résolu. À votre santé!


12

ÉTAPE 1) Téléchargez les clés privées attribuées à votre machine ec2 (ce qui n'est qu'un téléchargement une fois créé. Il est donc recommandé de valider quelque part)

ÉTAPE 2) et déclencher les commandes suivantes,

chmod 400 MyKeyPair.pem
ssh -i MyKeyPair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

Document officiel : Connexion à vos instances Linux / Unix à l'aide de SSH


7

Notez que l'utilisateur actuel pour la 13.04 est "ubuntu" ssh -i ./mykey.pem ubuntu@ec2-xxx-xxx-xxx-1.compute-1.amazonaws.com


4

Vous devez d'abord créer une paire de clés - faites-le à l'aide de votre console EC2. Ensuite, utilisez votre clé privée pour SSH dans le serveur (le nom d'utilisateur estec2-user ) en utilisant un client SSH de votre choix.

Une fois dedans, vous pouvez lancer un sudo su -pour gagner la racine si vous voulez (note: vous ne pouvez pas vous connecter directement en tant que root).


4

Si vous utilisez MacOS, vous devez créer / modifier le fichier de configuration SSH (~ / .ssh / config) et mettre quelque chose comme:

Host *.amazonaws.com
    User ubuntu
    Port 22
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null
    IdentityFile ~/PATH/YOUR_DOWNLOADED_KEY.pem

Ensuite, pour vous connecter à l'une des instances EC2:

ssh MYNAME.amazonaws.com

Rien de plus!


Et si j'ai la clé multi-pal pour différentes régions comme nous-est-1.pem et nous-ouest-2.pem
Hassib

1

Pour configurer Ubuntu sur AWS, veuillez suivre les étapes suivantes:

  1. Connectez-vous à Amazon Web Services et sélectionnez EC2 .
  2. Choisissez Lancer l'instance et suivez l'assistant en sélectionnant la bonne image (Ubuntu), le type d'instance, en configurant le réseau VPC et le sous-réseau, le stockage et en autorisant l'accès SSH dans les groupes de sécurité . Puis lancez .
  3. Pour la première fois, vous devez probablement configurer la paire de clés et l'attribuer à l'instance. Vous pouvez également créer une paire de clés dans des paires de clés . Une fois créé, téléchargez le fichier PEM et conservez-le en lieu sûr.
  4. Une fois l'instance lancée, attendez qu'elle soit initialisée et en cours d'exécution .

Pour accéder à l'instance via SSH, exécutez:

  1. Connectez-vous à Linux box en spécifiant votre fichier PEM, par exemple

    ssh -i "file.pem" ubuntu@x.x.x.x
    

    Assurez-vous que votre fichier PEM dispose d'une autorisation 600 ( chmod 600 file.pem).

Dépannage

Si vous exécutez une instance de VPC et que votre groupe de sécurité est correct (avec les bonnes règles) et qu'il ne fonctionne toujours pas, dans la section VPC , vérifiez votre sous-réseau qui doit être attaché à votre VPC (tous deux utilisés par votre instance) et configurez-le nouvelle règle dans la table de routage qui a 0.0.0.0/0comme destination et votre passerelle Internet comme cible .

Pour plus de détails, consultez: Dépannage de la connexion à votre instance

Voir aussi: Raisons possibles du délai d'expiration lors de la tentative d'accès à l'instance EC2


1

1) Tout d' abord chmodla .pem filepour restreindre le fichier permissons comme ci - dessous

chmod 400 my-key-pair.pem

2) Puis sshavec les commandes suivantes directement depuis le .sshdossier

ssh -i my-key-pair.pem ec2-user@ec2-198-99-90-3.compute-1.amazonaws.com

Remarque: - Pour naviguer dans le .sshdossier. Appuyez d'abord sur Ctrl + Hpour afficher tous les fichiers cachés et enfincd .ssh


0

Le problème peut être de ne pas vous connecter en tant qu'utilisateur approprié pour votre OS Distro. Pour certaines nouvelles AMI, le nom d'utilisateur peut ne pas être "ubuntu", mais "ec2-user". Pour Amazon Linux, par exemple, je pense que l'utilisateur est "ec2-user". Eric Hammond donne des exemples ici: http://alestic.com/2014/01/ec2-ssh-username

Ma suggestion, essayez:

ssh -i /path/to/file.pem ec2-user@ec2...

ssh -i /path/to/file.pem ubuntu@ec2...

ssh -i /path/to/file.pem root@ec2...

Si vous avez la mauvaise AMI, vous voudrez peut-être simplement redémarrer complètement la machine pour obtenir l'uniformité entre vos clusters. Si c'est votre problème, vous voudrez probablement les mêmes OS Distro au moins pour vos boîtiers Linux.


0

Faire ce qui est suggéré dans toutes ces réponses ne suffit pas. Contre chaque instance, vous voyez un groupe de sécurité. Lorsque vous lancez une nouvelle instance, cette chose sera définie par défaut. Vous devez modifier le groupe de sécurité et y ajouter le port ssh. Plus tard, vous devrez ajouter les ports 8080, 8443, 80, 443 également lorsque vous souhaitez héberger votre site Web.


0

J'ai accepté l'offre d'AWS d'utiliser les groupes de sécurité par défaut qui incluaient les ports «All Trafic».

Et, après avoir essayé maintes et maintes fois de me connecter sur ma nouvelle instance ec2, je viens de réaliser que je devrais modifier mon groupe de sécurité utilisé et ajouter manuellement aux ports entrants et sortants 22 (ssh)!

J'espère que ça aide !


0

Première modification de l'autorisation du fichier pem par

chmod 400 path/to/key_pair.pem

Dans le fichier ~ / .ssh / config, ajoutez les lignes suivantes, en haut du fichier

Host AWS
     Hostname myserver.com
     User myuser
     IdentityFile path/to/.pem/file
     port 22

Le nom d'hôte prend l'adresse IP ou le lien du serveur, l'utilisateur prend le nom d'utilisateur du serveur et le fichier d'identité est un fichier téléchargé depuis AWS lorsque vous avez créé l'instance. Exécutez simplement la commande suivante dans le terminal

ssh AWS

et profitez-en!

Remarque : pour naviguer dans le .sshdossier. Appuyez d'abord sur Ctrl + Hle dossier d'accueil pour afficher tous les fichiers cachés et enfincd .ssh


0

Assurez-vous que ces choses sont vérifiées

  1. la clé privée doit avoir l'autorisation 400

  2. Assurez-vous que le port 22 est ouvert pour l'instance AWS à laquelle vous essayez d'accéder.

  3. ssh -i privatekey.pem ubuntu@XXX.XXX.XXX.XXX // XXX.XXX.XXX.XXX = IP publique de votre instance
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.