Acredito que o OpenSSH e o Putty usam formatos diferentes para o arquivo de chave privada. Você pode carregar a chave privada em PuttyGen e convertê-la para o formato OpenSSH
Eu tenho um par de chaves privadas e públicas. A chave pública está no meu servidor e eu tenho minha chave privada no meu disco local. As permissões do arquivo foram alteradas com o comando:
chmod 600 private_key
Agora eu tento entrar no meu servidor com o comando:
ssh -i path_to_the_private_key username@servername
Meu Mac me mostra uma caixa de diálogo e me pede a senha. Eu digito a senha, mas meu Mac diz que a senha está incorreta.
Quando eu uso a mesma chave privada para logar no mesmo servidor com o uso de putty e a mesma senha, tudo funciona muito bem.
Alguma dica?
A saída do comando ssh:
OpenSSH_5.2p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to servername [...] port 22.
debug1: Connection established.
debug1: identity file private_key_su.ppk type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.8p1 Debian-7ubuntu1
debug1: match: OpenSSH_5.8p1 Debian-7ubuntu1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr 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 'servername' is known and matches the RSA host key.
debug1: Found key in path:4
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: private_key_su.ppk
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
debug1: No more authentication methods to try.
Permission denied (publickey).
Acredito que o OpenSSH e o Putty usam formatos diferentes para o arquivo de chave privada. Você pode carregar a chave privada em PuttyGen e convertê-la para o formato OpenSSH
Eu tive esse mesmo problema apenas a diferença é que meu arquivo de chave privada era o formato pem; o seu é o ppk. Eu resolvi isso abrindo o arquivo de chave privada no TextWrangler e mudei a codificação de "Unicode (UTF-8, com BOM)" para "Unicode (UTF-8)" e mudei as quebras de linha de "Classic Mac (CR)" para "Windows (CRLF)". Eu sei que parece para trás, mas é a única mudança que eu fiz e funcionou.
As configurações do arquivo estão na parte inferior da janela do TextWrangler.