O OpenSSH e as ferramentas derivadas do Putty usam um formato diferente para as chaves. Se você abrir Puttygen você será capaz de exporta uma chave que é compatível com openssh para autenticação.
Configurei meu roteador para aceitar uma sessão SSH de chave pública com uma frase secreta. O par de chaves foi gerado usando as ferramentas do PuTTY no Windows.
Eu posso abrir a sessão do Windows e do Linux usando as ferramentas Putty, mas não posso fazê-lo com ssh
no Linux.
Quando solicitado por ssh
para a frase secreta do arquivo de chaves, ele falhará. Ex:
~$ ssh [email protected] -p 123 -i ./key-ddwrt.ppk
DD-WRT v24-sp2 micro (c) 2010 NewMedia-NET GmbH
Release: 06/09/10 (SVN revision: 14583)
Enter passphrase for key './key-ddwrt.ppk': <*******>
Enter passphrase for key './key-ddwrt.ppk': <*******>
Enter passphrase for key './key-ddwrt.ppk': <*******>
Mas usando plink
funciona:
~$ plink -P 48884 -ssh -l root -i ./key-ddwrt.ppk my.domain.com
Using username "root".
DD-WRT v24-sp2 micro (c) 2010 NewMedia-NET GmbH
Release: 06/09/10 (SVN revision: 14583)
Passphrase for key "Hint phrase to jog my memory": <*******>
Enter 'help' for a list of built-in commands.
root@DD-WRT:~#
Por quê?
O OpenSSH e as ferramentas derivadas do Putty usam um formato diferente para as chaves. Se você abrir Puttygen você será capaz de exporta uma chave que é compatível com openssh para autenticação.
O ppk é uma maneira proprietária de armazenar a chave. Você precisa exportá-lo como um pem para o openssh fazer uso dele.