SSH - 尝试强制内部 sftp 时无法启动 sftp-server

Jai*_*den 7 ssh sftp

我无法强制用户在通过 ssh 连接时只能使用 sftp。

我的 /etc/ssh/sshd_config 中有以下几行:

Subsystem sftp /usr/libexec/openssh/sftp-server

Match user USERNAME
ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)

但是当我尝试通过 sftp 连接时,出现错误:

error: subsystem: cannot stat /usr/libexec/openssh/sftp-server: No such file or directory
subsystem request for sftp failed, subsystem not found
Run Code Online (Sandbox Code Playgroud)

但是,文件 /usr/libexec/openssh/sftp-server 确实存在并且似乎工作正常。如果我不尝试强制连接为 sftp,那么我可以很好地 ssh,所以 ssh 守护进程似乎正在正确处理事情,但强制 sftp 不是。

有没有人有什么建议?我试过寻找答案,但我发现的所有解决方案似乎都是关于 sftp-server 不在正确的位置。不过对我来说,该文件肯定在那里。

我使用的是 CentOS 6 和 OpenSSH 5.3p1。谢谢你的帮助。

Mat*_*lis 11

你使用“ChrootDirectory”吗?如果您的“/usr/libexec/openssh/sftp-server”存在,这将解释“找不到文件”。

您应该改用“子系统 sftp internal-sftp”(或放弃 Chroot)

  • 请注意,sshd_config 文件与 Ubuntu 14 上的文件系统不同步。默认为“/usr/libexec/openssh/sftp-server”,但实际文件为“/usr/lib/openssh/sftp-server”。 (4认同)