Контейнер Linux може використовувати файл санкціонованих_кейсів за межами мого домашнього каталогу, але ефемерні контейнери на його основі не можуть. Чому?


10

У Ubuntu 12.10 я створив LXC типу 'ubuntu' за допомогою утиліти lxc-create. Потім я створюю ефемерні контейнери на основі цього контейнера за допомогою утиліти lxc-start-ephemeral, і мені потрібно підключитися до тих, хто використовує ssh без пароля. Однак мені потрібно зберігати їхні / home / ubuntu папки незайманими, тому я не можу помістити туди звичайний .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)

Я зробив цей тест на свіжому мікроекземплярі AWS на основі стандартного Ubuntu 12.10 AMI, і я можу дати докладні інструкції щодо його відтворення, якщо це допоможе.


Оновлення: я думав, що проблема може бути дивними файловими системами lxc-start-ephemeral, тому я внесла деякі зміни. Я спершу зупинив OVERLAY_DIR та EPHEMERAL_BIND_DIR від того, щоб вони були tmpfs, тепер вони просто каталоги. Це не виправило. Потім я змінив кореневу файлову систему ефемерного контейнера з накладки на просту версію прив'язки. Це все виправило. На жаль, це не вирішує мою проблему, тому що мені потрібні накладки.
Ананд

Відповіді:


1

Це старе питання, але воно все ще виникає в Google ...

Authentication refused: bad ownership or modes for directory /

викликано службою sshd, що має суворі вимоги до дозволу до каталогу, в якому знайдені авторизовані ключі, не впевнений, як вам вдалося зробити так, щоб кореневий каталог (/), мабуть, був пов'язаний із способом налаштування контейнерів.

Якщо ви не можете змінити дозволи /, що в цьому випадку, ймовірно, ви можете встановити

StrictModes no

в sshd_config.
Якщо у вас немає доступу до сервера кількох користувачів, це мало впливає на безпеку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.