amazon-web-services - publickey - ssh port aws
Acesso de ssh da AWS 'Permissão negada(publickey)' em questão (14)
Como se conectar a uma instância do AWS por meio do ssh?
Eu tenho:
- Inscrito na AWS;
- Criei uma chave pública e um certificado no site da AWS e os salvei 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
Falei com a API da AWS para usar esse par de chaves e salvei o par de chaves no arquivo:
$ ec2-add-keypair ec2-keypair > ec2-keypair.pem
Começou 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?
A permissão para ec2-keypair.pem
deve ser 400
chmod 400 ec2-keypair.pem
Agora é:
ssh -v -i ec2-keypair.pem [email protected][yourdnsaddress]
Ele também irá reclamar se as permissões do arquivo pem estiverem abertas demais. chmod o arquivo para 600 para consertar isso.
Eu também estava correndo para isso - acontece que eu estava usando uma AMI criada pela comunidade - e o nome de usuário padrão era niehter root, nem ect-user ou ubuntu. Na verdade, eu não tinha ideia do que era - até que eu tentei ' root ' e o servidor gentilmente me pediu para fazer o login como xxx, onde xxx é o que ele diz.
-Felicidades!
No meu caso (Mac OS X), o problema era o tipo de quebra do arquivo. Tente isto:
1.- Abra o arquivo .pem com TextWrangler
2.- Na parte inferior do aplicativo, verifique se o tipo de quebra é "Windows (CRLF)".
Os lançamentos da Canonical usam o usuário 'ubuntu' por padrão para qualquer um que chegar aqui com uma imagem do Ubuntu que esteja com o mesmo problema.
Para instâncias do Debian EC2, o usuário é admin
.
Para instâncias do Ubuntu:
chmod 600 ec2-keypair.pem
ssh -v -i ec2-keypair.pem [email protected]
Para outras instâncias, você pode ter que usar o ec2-user
vez do ubuntu
.
A maioria das imagens do EC2 Linux que usei só tem o usuário root criado por padrão.
Veja também: http://www.youtube.com/watch?v=WBro0TEAd7g
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 tem as chaves públicas certas em ~ / .ssh / authorized_keys
Se você estiver usando uma imagem Bitnami, faça o login como 'bitnami'.
Parece óbvio, mas algo que esqueci.
Tive o mesmo problema. Permissão negada (publickey) ao tentar entrar com 'ec2-user' ou com 'root'.
Pesquisou o número de AMI da imagem da máquina e tinha as informações de login SSH diretamente na página wiki do Debian.
Espero que isto ajude.
Ubuntu 10.04 com openSSH
este é o uso exato:
ssh -v -i [yourkeypairfile] [email protected][yourdnsaddress]
por exemplo:
ssh -v -i GSG_Keypair.pem [email protected]
O exemplo acima foi tirado diretamente do tutorial da AWS para conexão com uma máquina Linux / UNIX em: http://docs.amazonwebservices.com/AWSEC2/latest/GettingStartedGuide/
isso funcionou para mim:
ssh-keygen -R <server_IP>
para apagar as chaves antigas armazenadas na estação de trabalho também trabalha com em vez de
então fazendo o mesmo ssh novamente funcionou:
ssh -v -i <your_pem_file> [email protected]<server_IP>
em instâncias ubuntu o nome de usuário é: ubuntu no Amazon Linux AMI o nome de usuário é: ec2-user
Não precisei recriar a instância de uma imagem.
usar...
# chmod 400 ec2-keypair.pem
não use a permissão 600, caso contrário você pode substituir sua chave acidentalmente.