
Estou me deparando com um problema curioso que nunca vi antes ao configurar o SSH sem senha entre nós do Docker para um usuário não root. Para preparar o cenário, eis o que funcionou: Para usuário root no nó 1:
ssh-keygen -t rsa ...
ssh-copy-id node2
Agora posso fazer ssh de node1 -> node2 sem senha.
Eu uso um usuário diferente (ou seja, marca). Eu executo as mesmas etapas acima, gerando as chaves e copiando para o node2 e ainda recebo o prompt. Ativei o diagnóstico (ssh -v node2) e obtive o seguinte:
[mark@node1 ~]$ ssh -v node2
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to node2 [172.17.0.3] port 22.
debug1: Connection established.
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_rsa-cert type -1
... more stuff
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/id_rsa
debug1: Next authentication method: password
...
Acho estranho, exceto em outro post aqui (https://stackoverflow.com/questions/18136389/using-ssh-keys-inside-docker-container) um dos postadores fez o seguinte comentário: "Lembre-se de que o docker roda com sudo (a menos que você não o faça), se for esse o caso, você usará as chaves ssh root." Isso chamou minha atenção, pois suspeito que essa possa ser a essência do meu problema.
Como não pude postar uma pergunta complementar lá, pensei em reformular a pergunta aqui. Não consigo encontrar nenhum detalhe na documentação do Docker especificamente sobre isso, mas parece influenciar o comportamento do ssh sem senha para usuários não root.
Agradeço qualquer clareza que alguém possa fornecer.
Responder1
Para solucionar/entender o que está acontecendo, vale a pena tentar ssh -i /home/mark/.ssh/id_rsa...
(ou qualquer que seja o caminho) para ver se ele permite usar a chave do mark e se funciona ao fazer isso. E como teste, tente renomear a chave do root e veja o que acontece!
Além disso, (esquecendo -i) veja se existe um arquivo ~/.ssh/config se sim, se houver alguma coisa nele. E veja se há uma linha IdentityFile ____
em /etc/ssh_config que possa especificar a chave do root.