Meu telefone Android 4.4.2 (é antigo, mas não pode ser atualizado) executa um servidor SSH pelo aplicativo SimpleSSHD. Ele gera uma senha aleatória diferente a cada login, por isso é muito inconveniente para mim como usuário cliente. Então, eu gostaria de usar a autenticação de chave pública.
Anteriormente, gerei um par de chaves públicas e privadas para acessar um servidor SSH. Acho que não há problema em reutilizar o par de chaves, então copio o arquivo de chave pública para o telefone Android:
$ ssh-copy-id -p 2222 192.168.1.87
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/t/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:
restorecon: invalid option -- F
usage: restorecon [-nrRv] pathname...
Depois disso ainda tenho que digitar senhas aleatórias geradas pelo servidor para fazer login.
Copiar o arquivo de chave pública para o telefone Android não funciona?
Em qual diretório no telefone Android o arquivo de chave pública deve ir?
Obrigado.
Este não é um problema com o Android. Eu acredito que a convenção de colocar chaves
~/.ssh/authorized_keys
é do OpenSSH. Não acredito que faça parte do padrão (RFCs). SimpleSSHD tem uma convenção diferente :A inferência disso é que seus arquivos de chaves autorizadas
~/authorized_keys
não devem ser~/.ssh/authorized_keys
.ssh-copy-id
parece assumir que cada servidor é um servidor OpenSSH. Como você já definiu sua chave pública usandossh-copy-id
, eu apenas faria o login e executaria: