Eu gostaria de poder ssh
em meu nó e, em seguida, executar o software para seus próprios propósitos, ssh
em outras máquinas e em si. Ele supõe que ssh
keys já estão configuradas, portanto, não pode usar o sinalizador -i
e usá-lo.
Eu tenho uma configuração de trabalho Xen onde isso funciona bem: tudo o que eu tive que fazer foi scp minha chave privada para .ssh/id_rsa
e a parte pública para .ssh/id_rsa.pub
(que eu posso recuperar no EC2 pois está em .ssh/authorized_keys
) .
Essa mesma configuração simplesmente não funciona no EC2. Eu verifiquei que /etc/ssh/sshd_config
e /etc/ssh/ssh_config
são os mesmos na minha caixa Xen que funciona e a caixa EC2 não.
A AMI base que estou usando é ami-1774927e
, a imagem do Alestic.com contendo uma nova instalação do Ubuntu Hardy. Naturalmente, a porta 22 está aberta no meu grupo de segurança para ssh
de tráfego.
Alguma idéia do que estou fazendo errado?
EDIT: Com base no conselho da womble e aconselha sobre os fóruns do Amazon EC2, aqui estão algumas informações extras que podem ser úteis:
sshd_config
e ssh_config
são os mesmos nas minhas caixas Xen e EC2 (e são os padrão fornecidos com o Alestic ami especificado anteriormente) e não estou usando nenhuma opção de linha de comando. ssh-agent
não está em execução e não há outras chaves ssh
na máquina. Estou apenas logando como root, e o mais importante , eu posso logar na minha caixa EC2 da mesma caixa se eu usar -i quando o nome da chave não for id_rsa
.
Quando eu uso o sinalizador -i, o final de ssh -v é assim:
debug1: Host 'localhost' is known and matches the RSA host key.
debug1: Found key in /root/.ssh/known_hosts:1
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: ec2scale.key
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Last login: Mon Jul 6 23:42:49 2009 from 127.0.0.1
Linux (none) 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:34:28 EST 2008 x86_64
... and so on ...
Mas quando não uso o sinalizador -i, obtenho isto:
debug1: Host 'localhost' is known and matches the RSA host key.
debug1: Found key in /root/.ssh/known_hosts:1
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: /root/.ssh/identity
debug1: Offering public key: /root/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: Trying private key: /root/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).
Eu diff
'as chaves e eles são idênticos, e eu posso ver que o servidor aceita minha chave id_rsa acima, mas apenas que a autenticação não passa. Fazer check-out /var/log/auth.log
mostra exatamente isso quando eu faço login:
Jul 6 23:46:09 ip-10-244-50-159 sshd[1354]: error: RSA_public_decrypt failed: error:0407006A:lib(4):func(112):reason(106)
Qual eu posso usar openssl
para ver o código de erro de:
root@ip:~# openssl errstr 0407006A
error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01
Mas não tenho certeza de como posso usar isso para ajudar no meu problema.