Docker の非ルートユーザー向けのパスワードなし SSH

Docker の非ルートユーザー向けのパスワードなし SSH

非ルート ユーザー向けに Docker ノード間でパスワードなしの SSH を設定するときに、これまでに見たことのない奇妙な問題が発生しています。状況を説明すると、次のようなことが機能しました。ノード 1 のルート ユーザーの場合:

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

パスワードなしで node1 -> node2 に ssh できるようになりました。

私は別のユーザー (つまり、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) 投稿者の 1 人が次のようなコメントを投稿しました。「docker は sudo で実行されることに注意してください (実行しない場合を除く)。その場合、ルート ssh キーを使用することになります。」これが私の問題の本質である可能性があると疑ったため、私は注目しました。

そこでフォローアップの質問を投稿できなかったので、ここで質問を再考しようと思いました。Docker ドキュメントにはこれに関する具体的な詳細は記載されていませんが、非ルート ユーザーのパスワードなしの SSH の動作に影響するようです。

どなたかが明確に説明していただければ幸いです。

答え1

何が起こっているのかをトラブルシューティングしたり理解したりするには、マークのキーを使用できるかどうか、またそのときに機能するかどうかを試してみる価値がありますssh -i /home/mark/.ssh/id_rsa...(または、それがどのようなパスであっても)。また、テストとして、ルートのキーの名前を変更して、何が起こるかを確認してください。

また、(-i を忘れて) ~/.ssh/config ファイルがあるかどうかを確認します。ある場合は、そこに何かが含まれているかどうかを確認します。また、IdentityFile ____/etc/ssh_config に、ルートのキーを指定している可能性のある行があるかどうかを確認します。

関連情報