当我尝试通过SSH从JAIL内部连接时,我收到此错误:
# ssh test@test.com
...
debug1: read_passphrase: can not open / dev / tty: No such file or directory
Host key verification failed.
JAIL everythng外部正常运作。有什么想法吗?
重现的步骤:
# 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
答案 0 :(得分:6)
你的jail root是否通过devfs mount有一个填充的/ dev文件系统?看起来现在不行。
重要说明:您应该能够使用devfs规则来限制对被监禁进程可见的设备。特别是,访问原始磁盘设备节点是一个坏的想法。 jail(8)联机帮助页描述了以下段落附近的内容:
将devfs中的仅适当的设备节点暴露给jail是很重要的;访问监狱中的磁盘设备可能允许监狱中的进程通过修改监狱外的文件来绕过监狱沙箱。有关如何使用devfs规则限制对per-jail devfs中条目的访问的信息,请参阅 devfs(8)。 jail的简单devfs规则集可用作
/etc/defaults/devfs.rules
中的规则集#4。
您应该能够在/jails/demo/dev
下安装devfs并通过以 root 运行以下命令来应用推荐的jail设备规则:
# mkdir /jails/demo/dev
# mount -t devfs devfs /jails/demo/dev
# devfs -m /jails/demo/dev rule -s 4 applyset
当然,您也可以在/etc/defaults/devfs.rules
中编写自定义规则集,甚至是仅适用于特定jail的特殊devfs规则集。
有关更多详细信息,另请参阅 jail(8), devfs(8)和 devfs.rules(5)的联机帮助页。
答案 1 :(得分:1)
如果您通过jail命令进入jail,也可能会遇到此问题。如果你启动监狱和SSH进入它,你应该有更好的运气。
答案 2 :(得分:1)
devfs文件系统可能未安装在您的jail中。很多事情都会失败,而不仅仅是ssh。
要自动安装正确过滤的devfs,最好的办法是使用rc.conf变量:
jail_enable = YES
jail_list = “JAILNAME”
jail_devfs_enable = YES
jail_JAILNAME_rootdir = '/监狱/演示'
jail_JAILNAME_hostname = “演示”
然后你可以使用“/etc/rc.d/jail start demo”停止/停止它,e