Wadah Linux dapat menggunakan file yang diotorisasi di luar direktori home saya, tetapi kontainer sementara yang berdasarkan itu tidak bisa. Mengapa?

10

Di Ubuntu 12.10, saya telah membuat LXC dari tipe 'ubuntu' menggunakan utilitas lxc-create. Saya kemudian membuat wadah ephemeral berdasarkan wadah ini menggunakan utilitas lxc-start-ephemeral, dan saya perlu terhubung ke mereka yang menggunakan ssh tanpa kata sandi. Namun, saya perlu menjaga agar folder / home / ubuntu mereka tetap asli, jadi saya tidak bisa memasukkan file .ssh / official_keys yang biasa di sana.

Bagian 'direktori home terenkripsi' di sini memberi tahu saya cara memindahkan otor_keys dari direktori home. Setelah saya mengikuti instruksi dari dalam wadah dasar, saya dapat ssh ke wadah dasar tanpa memberikan kata sandi.

Namun, ketika saya meluncurkan wadah fana dari wadah dasar, saya tidak dapat ssh masuk tanpa kata sandi. (Yang membingungkan, ssh tanpa kata sandi ke wadah sementara tidak berfungsi ketika berwenang_keys berada di tempat biasanya di /home/ubuntu/.ssh.) Bagaimana cara memperbaikinya?

Inilah yang dikatakan ssh -v, mulai dari saat ia menerima kunci host:

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

Berikut adalah bagian-bagian relevan dari /var/log/auth.log pada wadah sementara:

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)

Saya melakukan tes ini pada contoh mikro AWS baru berdasarkan standar Ubuntu 12.10 AMI, dan dapat memberikan petunjuk terperinci tentang cara mereproduksinya jika itu membantu.

Anand
sumber
Pembaruan: Saya pikir masalahnya adalah filesystem aneh yang menggunakan lxc-start-ephemeral, jadi saya membuat beberapa perubahan. Saya pertama kali menghentikan OVERLAY_DIR dan EPHEMERAL_BIND_DIR dari menjadi tmpfs, sekarang mereka hanya direktori. Itu tidak memperbaikinya. Saya kemudian mengubah sistem file root penyimpanan sementara dari overlayfs ke bind mount sederhana. Itu memang memperbaikinya. Sayangnya itu tidak menyelesaikan masalah saya, karena saya perlu overlay.
Anand

Jawaban:

1

Ini adalah pertanyaan lama tetapi masih muncul di google ...

Authentication refused: bad ownership or modes for directory /

disebabkan oleh layanan sshd yang memiliki persyaratan izin yang ketat untuk direktori tempat otor_keys ditemukan, tidak yakin bagaimana Anda berhasil membuat direktori root (/) mungkin ada hubungannya dengan cara Anda mengkonfigurasi wadah.

Jika Anda tidak dapat mengubah izin /, yang sepertinya dalam hal ini, Anda dapat mengatur

StrictModes no

di sshd_config.
Asalkan Anda tidak memiliki banyak pengguna yang mengakses server, melakukan hal ini berdampak kecil pada keamanan.

teknopaul
sumber