Comment se connecter à une instance AWS via ssh?
J'ai:
- Inscrit à AWS;
- Créé une clé publique et un certificat sur le site Web AWS et les a enregistrés sur le disque;
Je suis allé sur ma console et j'ai créé des variables d'environnement:
$ export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/ $ export EC2_CERT=/home/default/aws/cert-EBAINCRNWHDSCWWIHSOKON2YWGJZ5LSQ.pem $ export EC2_PRIVATE_KEY=/home/default/aws/pk-EBAINCRNWHDSCWWIHSOKON2YWGJZ5LSQ.pem
A dit à l'API AWS d'utiliser cette paire de clés et a enregistré la paire de clés dans un fichier:
$ ec2-add-keypair ec2-keypair > ec2-keypair.pem
A démarré une instance AWS Ubuntu 9 à l'aide de cette paire de clés:
$ ec2-run-instances ami-ed46a784 -k ec2-keypair
Vous avez tenté d'établir une connexion ssh à l'instance:
$ ssh -v -i ec2-keypair.pem [email protected] OpenSSH_5.1p1 Debian-5ubuntu1, OpenSSL 0.9.8g 19 Oct 2007 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Applying options for * debug1: Connecting to ec2-174-129-185-190.compute-1.amazonaws.com [174.129.185.190] port 22. debug1: Connection established. debug1: identity file ec2-keypair.pem type -1 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-5ubuntu1 debug1: match: OpenSSH_5.1p1 Debian-5ubuntu1 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-5ubuntu1 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-cbc hmac-md5 none debug1: kex: client->server aes128-cbc hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Host 'ec2-174-129-185-190.compute-1.amazonaws.com' is known and matches the RSA host key. debug1: Found key in /home/default/.ssh/known_hosts:11 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Trying private key: ec2-keypair.pem debug1: read PEM private key done: type RSA debug1: Authentications that can continue: publickey debug1: No more authentication methods to try. Permission denied (publickey).
Quel pourrait être le problème et comment le faire fonctionner?
Réponses:
Pour les instances Ubuntu:
Pour d'autres instances, vous devrez peut-être utiliser à la
ec2-user
place deubuntu
.La plupart des images EC2 Linux que j'ai utilisées n'ont que l'utilisateur root créé par défaut.
Voir aussi: http://www.youtube.com/watch?v=WBro0TEAd7g
la source
Maintenant c'est:
la source
Les versions de Canonical utilisent par défaut l'utilisateur 'ubuntu' pour quiconque atterrit ici avec une image ubuntu qui rencontre le même problème.
la source
Si vous utilisez une image Bitnami, connectez-vous en tant que «bitnami».
Cela semble évident, mais quelque chose que j'ai négligé.
la source
Seems <sarcasm>obvious</sarcasm>
Pour mes images ubuntu, il s'agit en fait de l'utilisateur ubuntu et NON de l'utilisateur ec2;)
la source
Ubuntu 10.04 avec openSSH
c'est l'usage exact:
par exemple:
l'exemple ci-dessus a été tiré directement du didacticiel AWS pour la connexion à une machine Linux / UNIX à l' adresse : http://docs.amazonwebservices.com/AWSEC2/latest/GettingStartedGuide/
la source
Il se plaindra également si les autorisations du fichier pem sont trop ouvertes. modifiez le fichier à 600 pour résoudre ce problème.
la source
chmod 600 your_file.pem
J'étais également confronté à cela - il s'avère que j'utilisais une AMI créée par la communauté - et le nom d'utilisateur par défaut était niehter root, ni ect-user ni ubuntu. En fait, je n'avais aucune idée de ce que c'était - jusqu'à ce que j'essaie « root » et que le serveur me demande gentiment de me connecter en tant que xxx où xxx est tout ce qu'il vous dit.
-à votre santé!
la source
Vous devez avoir votre clé privée sur votre machine locale
Vous devez connaître l'adresse IP ou le nom DNS de votre machine ou serveur distant, vous pouvez l'obtenir à partir de la console AWS
Si vous êtes un utilisateur Linux
chmod 600 <path to private key file>
)ssh -i <path to private key file> <user>@<IP address or DNS name of remote server>
)Si vous êtes un utilisateur Windows
la source
utilisation...
n'utilisez pas l'autorisation 600 sinon vous risquez d'écraser accidentellement votre clé.
la source
cela a fonctionné pour moi:
pour supprimer les anciennes clés stockées sur le poste de travail fonctionne également avec au lieu de
puis en faisant à nouveau le même ssh, cela a fonctionné:
sur les instances ubuntu, le nom d'utilisateur est: ubuntu sur Amazon Linux AMI, le nom d'utilisateur est: ec2-user
Je n'ai pas eu à recréer l'instance à partir d'une image.
la source
Pour les instances Debian EC2, l'utilisateur l'est
admin
.la source
Il y a 2 étapes à connecter:
Chmod 400 sur votre clé privée, comme ça les autres ne peuvent pas accéder à votre clé:
Pour vous connecter à votre instance dans SSH, vous devez connaître l'adresse IP publique de votre instance:
J'espère que ça aide !
la source
Si vous utilisez EBS, vous pouvez également essayer de monter le volume EBS sur une instance en cours d'exécution. Montez-le ensuite sur cette instance en cours d'exécution et voyez ce qui se passe dans / home. Vous pouvez voir des choses comme l'utilisateur ubuntu ou ec2-user? ou a-t-il les bonnes clés publiques sous ~ / .ssh / authorized_keys
la source
L'autorisation pour
ec2-keypair.pem
devrait être400
chmod 400 ec2-keypair.pem
la source
Si vous exécutez une image AWS à partir de Bitnami. Le nom d'utilisateur serait bitnami. À votre santé!
voir mon débogage et regardez le dernier:
*
*
la source
Dans mon cas (Mac OS X), le problème était le type de rupture du fichier. Essaye ça:
1.- Ouvrez le fichier .pem avec TextWrangler
2.- En bas de l'application, vérifiez si le type de rupture est "Windows (CRLF)".
la source
Son utilisateur ec2 pour Amazon Linux AMI et ubuntu pour les images Ubuntu. Aussi, RHEL 6.4 et versions ultérieures ec2-user RHEL 6.3 et versions antérieures Root Fedora ec2-user Centos root
la source
Ajout juste à cette liste. J'avais des problèmes ce matin avec un nouvel utilisateur venant d'être ajouté à une instance AWS EC2. Pour aller droit au but, le problème était le selinux (qui était en mode d' application ), ainsi que le fait que mon répertoire personnel était sur un nouveau volume attaché EBS. D'une certaine manière, je suppose que selinux n'aime pas cet autre volume. Il m'a fallu un certain temps pour comprendre, alors que je regardais tous les autres problèmes ssh habituels (/ etc / ssh / sshd_config était bien, bien sûr aucun mot de passe n'était autorisé, les autorisations étaient bonnes, etc.)
La solution?
Pour l'instant (jusqu'à ce que je comprenne comment autoriser un utilisateur à ssh vers un volume différent, ou en quelque sorte faire de ce volume un point de répertoire personnel de bonne foi):
C'est tout. Mon nouvel utilisateur peut désormais se connecter en utilisant sa propre clé id_rsa.
la source
Eu le même problème. Autorisation refusée (publickey) lorsque vous essayez de vous connecter avec 'ec2-user' ou avec 'root'.
Googlé le numéro AMI de l'image de la machine et il avait les informations de connexion SSH directement sur la page wiki Debian.
J'espère que cela t'aides.
la source