添加“匹配组”子句后 sftp/ssh 失败

Jon*_*Coe 8 linux ubuntu ssh ftp sftp

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

Match Group sftp
    ChrootDirectory /home/%u
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)

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

Error: Connection refused
Error: Could not connect to server
Run Code Online (Sandbox Code Playgroud)

我能够连接子系统设置为:

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*Coe 15

好了,问题解决了:

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
Run Code Online (Sandbox Code Playgroud)

还有bam,你可以登录并写入/writable。”