SSH sem senha para usuário não root no Docker

SSH sem senha para usuário não root no Docker

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.

informação relacionada