Беспарольный ssh ​​для не-root пользователя в Docker

Беспарольный ssh ​​для не-root пользователя в Docker

Я столкнулся с любопытной проблемой, с которой никогда раньше не сталкивался, при настройке беспарольного SSH между узлами Docker для пользователя без прав root. Для начала вот что сработало: Для пользователя root на узле 1:

ssh-keygen -t rsa ...
ssh-copy-id node2

Теперь я могу подключиться по ssh с node1 на node2 без пароля.

Я использую другого пользователя (т.е. mark). Я выполняю те же шаги, что и выше, генерирую ключи и копирую на node2, и все равно получаю приглашение. Я включил диагностику (ssh -v node2) и получил следующее:

[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
...

Я нахожу это странным, за исключением другого поста здесь (https://stackoverflow.com/questions/18136389/using-ssh-keys-inside-docker-container) один из участников оставил следующий комментарий: «Помните, что docker работает с sudo (если вы этого не делаете), в таком случае вам придется использовать ключи root ssh». Это привлекло мое внимание, поскольку я подозреваю, что в этом и заключается суть моей проблемы.

Поскольку я не мог разместить дополнительный вопрос там, я подумал, что переформулирую вопрос здесь. Я не могу найти никаких подробностей в документации Docker конкретно по этому поводу, но, похоже, это влияет на поведение беспарольного ssh для не-root пользователей.

Я буду признателен за любые разъяснения.

решение1

Для устранения неполадок / понимания того, что происходит, стоит попробовать ssh -i /home/mark/.ssh/id_rsa...(или какой бы путь это ни был) посмотреть, позволяет ли он вообще использовать ключ Марка и работает ли он при этом. И в качестве теста попробуйте переименовать ключ root и посмотрите, что тогда получится!

Также (забывая -i) посмотрите, есть ли файл ~/.ssh/config, если он есть, и есть ли в нем что-нибудь. И посмотрите, есть ли строка IdentityFile ____в /etc/ssh_config, которая могла бы указывать ключ root.

Связанный контент