Linuxコンテナーは、ホームディレクトリの外部のauthorized_keysファイルを使用できますが、それに基づく一時的なコンテナーは使用できません。どうして?


10

Ubuntu 12.10では、lxc-createユーティリティを使用して「ubuntu」タイプのLXCを作成しました。次に、lxc-start-ephemeralユーティリティを使用して、このコンテナーに基づく一時コンテナーを作成し、パスワードなしのsshを使用してそれらに接続する必要があります。ただし、/ home / ubuntuフォルダーを元の状態に保つ必要があるため、通常の.ssh / authorized_keysファイルをそこに配置できません。

ここの「暗号化されたホームディレクトリ」セクションは、authorized_keysをホームディレクトリから移動する方法を説明しています。ベースコンテナー内からこれらの手順を実行した後、パスワードを入力せずにベースコンテナーにSSH接続できます。

しかし、ベースコンテナーからエフェメラルコンテナーを起動すると、パスワードがないとsshでログインできません。(紛らわしいこと、はかないコンテナにパスワードなしsshがない authorized_keysには/home/ubuntu/.sshでのいつもの場所にあるときに仕事を。)どのように私はこの問題を解決することができますか?

ssh -vがホストキーを受け入れるときから、次のように言っています。

debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/ubuntu/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/ubuntu/.ssh/id_dsa
debug1: Trying private key: /home/ubuntu/.ssh/id_ecdsa
debug1: Next authentication method: password

エフェメラルコンテナの/var/log/auth.logの関連部分は次のとおりです。

Apr 11 00:06:52 test-temp-SNeWevO sshd[306]: Authentication refused: bad ownership or modes for directory /
Apr 11 00:06:54 test-temp-SNeWevO sshd[306]: Accepted password for ubuntu from 10.0.3.1 port 59677 ssh2
Apr 11 00:06:54 test-temp-SNeWevO sshd[306]: pam_env(sshd:setcred): Unable to open env file: /etc/default/locale: No such file or directory
Apr 11 00:06:54 test-temp-SNeWevO sshd[306]: pam_unix(sshd:session): session opened for user ubuntu by (uid=0)

私はこのテストを標準のUbuntu 12.10 AMIに基づく新しいAWSマイクロインスタンスで行いました。それが役立つ場合は、再現方法の詳細な手順を提供できます。


更新:問題はlxc-start-ephemeralが使用する奇妙なファイルシステムかもしれないと思ったので、いくつか変更を加えました。最初に、OVERLAY_DIRとEPHEMERAL_BIND_DIRがtmpfsにならないようにしましたが、現在は単なるディレクトリになっています。それはそれを修正しませんでした。次に、エフェメラルコンテナーのルートファイルシステムをoverlayfsから単純なバインドマウントに変更しました。それそれを修正しました。残念ながら、私はoverlayfsを必要とするので、それは私の問題を解決しません。
アナンド2013

回答:


1

これは古い質問ですが、それでもグーグルで出てきます...

Authentication refused: bad ownership or modes for directory /

これは、sshdサービスがauthorized_keysが見つかったディレクトリに対する厳密なアクセス許可要件を持っているために発生します。ルートディレクトリ(/)がコンテナの構成方法と関係があると思われる方法をどのようにして管理したかはわかりません。

/のパーミッションを変更できない場合は、この場合のように思われますが、

StrictModes no

sshd_config。
サーバーにアクセスする複数のユーザーがいない場合、これを行ってもセキュリティへの影響はほとんどありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.