Mac OS X Lion 上的 SSH ChrootDirectory(非服务器版本)

Mac OS X Lion 上的 SSH ChrootDirectory(非服务器版本)

我正在尝试在 MacBook Pro 上设置一个仅用于远程的用户帐户,并将其 chrooted 为/chroot/tmux。我已按照此处概述的步骤进行操作(http://thefragens.com/blog/2011/12/chrootd-sftp-on-mac-os-x-server/),但是当我尝试使用(在我的本地网络上)登录时:

ssh [email protected]

...我立即关闭了连接:

❯ ssh [email protected]                                                                                                        
Password:
Connection to 10.0.1.140 closed by remote host.
Connection to 10.0.1.140 closed.

删除此行后/etc/sshd_config我可以正常登录,但我的tmux用户不再被 chroot:

Match User tmux
  # ...
  ChrootDirectory /chroot/tmux # removing this allows me to login

我要做什么才能让它工作?


这是我尝试使用以下命令从客户端登录时输入密码后得到的结果:ssh -vv [email protected]

debug2: input_userauth_info_req 
debug2: input_userauth_info_req: num_prompts 0 
debug1: Authentication succeeded (keyboard-interactive). 
Authenticated to 10.0.1.140 ([10.0.1.140]:22). 
debug1: channel 0: new [client-session] 
debug2: channel 0: send open 
debug1: Requesting [email protected] 
debug1: Entering interactive session. 
debug1: channel 0: free: client-session, nchannels 1 
Connection to 10.0.1.140 closed by remote host.
Connection to 10.0.1.140 closed.
Transferred: sent 1872, received 1880 bytes, in 0.0 seconds
Bytes per second: sent 100689.1, received 101119.4
debug1: Exit status -1

令人鼓舞的是,Mac 的控制台报告了这一点:

6/15/12 9:57:42.679 AM sshd: fatal: bad ownership or modes for chroot directory "/chroot/tmux"

我当前的目录权限:

~ ❯ ls -al /chroot/tmux                                                                                                                      
total 8
drwxr-xr-x  7 tmux  wheel  238 Jun 14 11:18 .
drwxr-xr-x  3 root  wheel  102 Jun 14 10:34 ..

答案1

这里的问题是目录 /chroot/tmux 的所有权和权限。

SSHD 手册页指出:

Chroot目录

         Specifies the pathname of a directory to chroot(2) to after
         authentication.  All components of the pathname must be root-
         owned directories that are not writable by any other user or
         group.  After the chroot, sshd(8) changes the working directory
         to the user's home directory.

我相信给予 ChrootDirectory 的特定路径(在您的情况下为 /home/tmux)必须是 root:root 并且最多有 755 个权限,看起来您的目录归“tmux”所有。

还要注意,ChrootDirectory 命令最适合与 SFTP 配合使用,因为它不需要特定的 shell,如果您尝试从此目录运行交互式 SSH 命令行会话(和 shell),则需要先将一些文件添加到 chroot,如 sshd_config 手册页中所述:

Chroot目录必须包含支持用户会话所需的文件和目录。对于交互式会话,这至少需要一个 shell(通常是 sh(1))和基本 /dev 节点,例如 null(4)、zero(4)、stdin(4)、stdout(4)、stderr(4)、arandom(4) 和 tty(4) 设备。对于使用“sftp”的文件传输会话,如果使用进程内 sftp 服务器,则无需对环境进行其他配置,但使用日志记录的会话确实需要 chroot 目录中的 /dev/log(有关详细信息,请参阅 sftp-server(8))。

相关内容