FreeBSD Jail и SSH - /dev/tty: нет такого файла или каталога

Когда я пытаюсь подключиться через SSH изнутри JAIL, я получаю эту ошибку:

# ssh test@test.com
...
debug1: read_passphrase: can not open / dev / tty: No such file or directory
Host key verification failed.

За пределами тюрьмы все работает правильно. Есть идеи?

Действия по воспроизведению:

# jls
JID  IP Address      Hostname                      Path
1     10.10.3.1       demo.example.com             /jails/demo

# jexec 1 tcsh

(inside jail:)
# ssh test@test.com

3 ответа

Решение

У вашего jail-корня есть заполненная файловая система /dev через монтирование devfs? Похоже, что не сейчас.

Важное примечание: вы должны иметь возможность использовать правила devfs для ограничения устройств, видимых для заключенных в тюрьму процессов. В частности, плохой идеей является доступ к узлам необработанных дисковых устройств. Страница jail(8) описывает это в следующем абзаце:

Важно, чтобы только соответствующие узлы устройств в devfs подвергались воздействию тюрьмы; доступ к дисковым устройствам в тюрьме может позволить процессам в тюрьме обходить изолированную программную среду тюрьмы путем изменения файлов за пределами тюрьмы. См. Devfs(8) для получения информации о том, как использовать правила devfs для ограничения доступа к записям в jail devfs. Простой набор правил devfs для джейлов доступен как набор правил № 4 в /etc/defaults/devfs.rules,

Вы должны быть в состоянии смонтировать devfs под /jails/demo/dev и примените рекомендуемые правила для jail-устройств, выполнив от имени root следующие команды:

# mkdir /jails/demo/dev
# mount -t devfs devfs /jails/demo/dev
# devfs -m /jails/demo/dev rule -s 4 applyset

Конечно, вы также можете написать собственный набор правил в /etc/defaults/devfs.rulesдаже специальный набор правил devfs, который применяется только к определенной тюрьме.

Для получения дополнительной информации см. Также страницы man для jail(8), devfs(8) и devfs.rules (5).

Файловая система devfs, вероятно, не смонтирована в вашей тюрьме. Многие вещи потерпят неудачу, не только ssh.

Для автоматического монтирования правильно отфильтрованных devfs лучше всего использовать переменные rc.conf:

jail_enable = ДА

jail_list = "JAILNAME"

jail_devfs_enable = ДА

jail_JAILNAME_rootdir='/ Тюрьмы / демо'

jail_JAILNAME_hostname = "демо"

Затем вы можете остановить / остановить его, используя "/etc/rc.d/jail start demo", e

Это также может произойти, если вы попали в тюрьму с помощью команды тюрьмы. Если вы запустите джейл и SSH, вам повезет больше.

Другие вопросы по тегам