Como se conectar a uma instância da AWS através do ssh?
Eu tenho:
- Inscreveu-se na AWS;
- Criou uma chave pública e um certificado no site da AWS e os salvou em disco;
Fui ao meu console e criei variáveis de ambiente:
$ 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
Disse à API da AWS para usar esse par de chaves e salvou o par de chaves no arquivo:
$ ec2-add-keypair ec2-keypair > ec2-keypair.pem
Iniciou uma instância do AWS Ubuntu 9 usando este par de chaves:
$ ec2-run-instances ami-ed46a784 -k ec2-keypair
Tentativa de estabelecer uma conexão ssh com a instância:
$ 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).
Qual poderia ser o problema e como fazê-lo funcionar?
Respostas:
Para instâncias do Ubuntu:
Para outras instâncias, você pode ter que usar em
ec2-user
vez deubuntu
.A maioria das imagens do EC2 Linux que usei têm apenas o usuário root criado por padrão.
Veja também: http://www.youtube.com/watch?v=WBro0TEAd7g
fonte
Agora é:
fonte
As versões da Canonical usam o usuário 'ubuntu' por padrão para qualquer pessoa que chegue aqui com uma imagem do ubuntu que está apresentando o mesmo problema.
fonte
Se você estiver usando uma imagem Bitnami, faça o login como 'bitnami'.
Parece óbvio, mas algo que eu esqueci.
fonte
Seems <sarcasm>obvious</sarcasm>
Para minhas imagens do ubuntu, na verdade é o usuário do ubuntu e NÃO o usuário do ec2;)
fonte
Ubuntu 10.04 com openSSH
este é o uso exato:
por exemplo:
O exemplo acima foi retirado diretamente do tutorial da AWS para conectar-se a uma máquina Linux / UNIX em: http://docs.amazonwebservices.com/AWSEC2/latest/GettingStartedGuide/
fonte
Ele também reclamará se as permissões do arquivo pem estiverem muito abertas. chmod o arquivo para 600 para corrigir isso.
fonte
chmod 600 your_file.pem
Eu também estava pensando nisso - acontece que estava usando uma AMI criada pela comunidade - e o nome de usuário padrão não era mais o root, nem o ect-user ou o ubuntu. Na verdade, eu não tinha ideia do que era - até que tentei ' root ' e o servidor gentilmente me pediu para entrar como xxx, onde xxx é o que quer que seja.
-Felicidades!
fonte
Você precisa ter sua chave privada em sua máquina local
Você precisa saber o endereço IP ou o nome DNS da sua máquina ou servidor remoto. Você pode obter isso no console da AWS
Se você é um usuário Linux
chmod 600 <path to private key file>
)ssh -i <path to private key file> <user>@<IP address or DNS name of remote server>
)Se você é um usuário do Windows
fonte
usar...
não use a permissão 600, caso contrário você poderá sobrescrever sua chave acidentalmente.
fonte
isso funcionou para mim:
excluir as chaves antigas armazenadas na estação de trabalho também funciona em vez de
então fazendo o mesmo ssh novamente funcionou:
nas instâncias do ubuntu, o nome de usuário é: ubuntu on Amazon Linux AMI, o nome de usuário é: ec2-user
Não tive que recriar a instância a partir de uma imagem.
fonte
Para instâncias do Debian EC2, o usuário é
admin
.fonte
Existem 2 etapas a serem conectadas:
Chmod 400 na sua chave privada, assim os outros não podem acessar a sua chave:
Para se conectar à sua instância no SSH, você precisa saber o endereço IP público da sua instância:
Espero que ajude !
fonte
Se você estiver usando o EBS, também poderá tentar montar o volume do EBS em uma instância em execução. Em seguida, monte-o nessa instância em execução e veja o que está acontecendo em / home. Você pode ver coisas como é o usuário ubuntu ou ec2-user? ou possui as chaves públicas corretas em ~ / .ssh / allowed_keys
fonte
A permissão para
ec2-keypair.pem
deve ser400
chmod 400 ec2-keypair.pem
fonte
Se você estiver executando a imagem da AWS no Bitnami. O nome de usuário seria bitnami. Felicidades!
veja meu debug e olhe o último:
*
*
fonte
No meu caso (Mac OS X), o problema era o tipo de interrupção do arquivo. Tente o seguinte:
1.- Abra o arquivo .pem com o TextWrangler
2.- Na parte inferior do aplicativo, verifique se o tipo de quebra é "Windows (CRLF)".
fonte
Seu usuário ec2 para imagens da Amazon Linux AMI e ubuntu para Ubuntu. Além disso, RHEL 6.4 e mais recente usuário ec2 RHEL 6.3 e raiz anterior Centos root do Fedora ec2-usuário
fonte
Apenas adicionando a esta lista. Esta manhã, eu estava com problemas com um novo usuário adicionado a uma instância do AWS EC2. Para ir direto ao ponto, o problema era o selinux (que estava em impor modo de ), junto com o fato de que meu diretório pessoal do usuário estava em um novo volume anexado ao EBS. De alguma forma, acho que o selinux não gosta desse outro volume. Demorei um pouco para descobrir, enquanto eu examinava todos os outros problemas ssh comuns (/ etc / ssh / sshd_config estava bom, é claro que nenhuma senha permitida, permissões estavam corretas etc.)
O conserto?
Por enquanto (até que eu entenda como permitir que um usuário faça ssh para um volume diferente ou, de alguma forma, torne esse volume um ponto de diretório doméstico genuíno):
É isso aí. Agora meu novo usuário pode efetuar login, usando sua própria chave id_rsa.
fonte
Teve o mesmo problema. Permissão negada (publickey) ao tentar efetuar login com 'ec2-user' ou com 'root'.
Pesquisou o número AMI da imagem da máquina e tinha as informações de login do SSH diretamente na página wiki da Debian.
Espero que isto ajude.
fonte