1

当我尝试从 JAIL 内部通过 SSH 连接时,我收到此错误:

# 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
4

3 回答 3

6

您的监狱根目录是否通过 devfs 挂载填充了 /dev 文件系统?现在好像不行

重要提示:您应该能够使用 devfs 规则来限制设备对被监禁的进程可见。特别是,访问原始磁盘设备节点是个主意。jail(8)手册页在以下段落附近描述了这一点:

重要的是,只有devfs 中适当的设备节点才会暴露在监狱中;访问监狱中的磁盘设备可能会允许监狱中的进程通过修改监狱外的文件来绕过监狱沙盒。有关如何使用 devfs 规则来限制对 per-jail devfs 中条目的访问的信息,请参阅devfs(8) 。用于监狱的简单 devfs 规则集可作为规则集 #4 在/etc/defaults/devfs.rules.

您应该能够通过以root身份运行以下命令来安装 devfs/jails/demo/dev并应用推荐的 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,甚至是仅适用于特定监狱的特殊 devfs 规则集。

有关更多详细信息,另请参阅jail(8)devfs(8)devfs.rules(5)的手册页。

于 2010-09-10T01:47:21.260 回答
1

devfs 文件系统可能未安装在您的监狱中。很多事情都会失败,不仅仅是 ssh。

要自动安装经过适当过滤的 devfs,最好的办法是使用 rc.conf 变量:

监狱启用=是

jail_list="监狱名"

jail_devfs_enable=YES

jail_JAILNAME_rootdir='/jails/demo'

jail_JAILNAME_hostname="demo"

然后你可以使用“/etc/rc.d/jail start demo”来停止/停止它,e

于 2010-11-10T19:17:17.223 回答
1

如果您通过 jail 命令进入监狱,您也可能会遇到这种情况。如果你启动了 jail 并通过 SSH 进入它,你应该会有更好的运气。

于 2010-10-13T17:20:47.960 回答