Eu tenho um Ubuntu 16.04 e uma máquina debian, ambos conectados através de uma rede. Na minha máquina Ubuntu há serviço em execução, que precisa reiniciar o computador debian ao iniciar o serviço. O serviço é invocado por sudo service debian_client start e está fazendo um monte de comandos como ssh [email protected] reboot na máquina debian. O problema é que eu preciso digitar a senha uma vez para cada comando ssh, o que é muito chato.
Eu tentei ir para ~/.ssh na máquina Ubuntu e fiz
ssh-keygen -t rsa
ssh-copy-id [email protected]
Depois disso, efetuei login via ssh [email protected] , o que funciona sem digitar uma senha. Mas quando invoco o comando ssh através do serviço, eu ainda tenho que digitar a senha. Alguém sabe por que e como resolver esse problema, não consigo encontrar ajuda on-line para esse problema específico?
Parte interessante, eu mudei o script para ssh -v [email protected] e comparei a saída do script com a saída se eu fizer isso via bash. A diferença é que o script sempre procura chaves em / root, como mostra a saída:
...
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/id_rsa
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Trying private key: /root/.ssh/id_ecdsa
debug1: Trying private key: /root/.ssh/id_ed25519
debug1: Next authentication method: password
Se eu fizer isso sozinho via bash, a saída diz:
debug1: Next authentication method: publickey
debug1: Offering RSA public key: user@ubuntucomputer
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).
e eu estou logado sem qualquer senha digitada. Alguém pode ajudar? Por que meu serviço está procurando a chave em / root /? Muito obrigado.