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.
在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
    
已邀请:
你的jail root是否通过devfs mount有一个填充的/ dev文件系统?看起来现在不行。 重要说明:您应该能够使用devfs规则来限制对被监禁进程可见的设备。特别是,访问原始磁盘设备节点是一个坏主意。 jail(8)联机帮助页描述了以下段落附近的内容:   重要的是,只有devfs中的适当设备节点才会暴露给监狱;访问监狱中的磁盘设备可能允许监狱中的进程通过修改监狱外的文件来绕过监狱沙箱。有关如何使用devfs规则限制对per-jail devfs中条目的访问的信息,请参阅devfs(8)。 j j的简单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)的联机帮助页。     
如果您通过jail命令进入监狱,也可能会遇到此问题。如果你启动监狱和SSH进入它,你应该有更好的运气。     
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     

要回复问题请先登录注册