7

我正在尝试在 EC2 上的 ubuntu/precise 上设置 sftp 服务器。我已经成功添加了一个可以通过 ssh 连接的新用户,但是一旦我添加了以下子句:

Match Group sftp
    ChrootDirectory /home/%u
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

我无法再连接(无论是 ssh 还是其他方式),我收到了消息

Error: Connection refused
Error: Could not connect to server

我能够将子系统设置为:

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

知道为什么 ssh 服务器会因这个“匹配”子句而失败吗?本质上,除了“chroot”部分之外,一切都在工作。

4

2 回答 2

6

好的,解决了问题:

2 件事导致了问题

  1. 我不得不将“匹配”子句移到文件的末尾,它在中间
  2. 存在权限问题 - 在其他地方找到了修复它的答案

来自:https ://askubuntu.com/questions/134425/how-can-i-chroot-sftp-only-ssh-users-into-their-homes

“所有这些痛苦都是由于这里详述的几个安全问题。基本上 chroot 目录必须由 root 拥有,并且不能是任何组写入访问权限。可爱。所以你基本上需要把你的 chroot 变成一个容纳单元和在其中,您可以拥有可编辑的内容。

sudo chown root /home/bob
sudo chmod go-w /home/bob
sudo mkdir /home/bob/writable
sudo chown bob:sftponly /home/bob/writable
sudo chmod ug+rwX /home/bob/writable

而且 bam,你可以登录并写入 /writable。”

于 2012-08-21T15:23:33.033 回答
1

确保 /home 和 /home/%u 被改写为 root:root。

于 2012-08-21T15:24:17.243 回答