在通过ssh进行连接时,我很难强迫用户只能使用sftp。
我的/etc/ssh/sshd_config中有以下行:
Subsystem sftp /usr/libexec/openssh/sftp-server
Match user USERNAME
ForceCommand internal-sftp
但是当我试图通过sftp连接时,我得到了错误:
error: subsystem: cannot stat /usr/libexec/openssh/sftp-server: No such file or directory
subsystem request for sftp failed, subsystem not found
但是,文件/usr/libexec/openssh/sftp-server确实存在,而且似乎运行良好。如果我不尝试将连接强制为sftp,那么我可以很好地执行ssh,因此ssh守护进程似乎正确地处理了一些事情,但是强制sftp不是。
有人有什么建议吗?我尝试过寻找答案,但我找到的所有解决方案似乎都是关于sftp服务器不在正确位置的。不过,对我来说,文件肯定在那里。
我使用的是CentOS 6和OpenSSH 5.3p1。谢谢你的帮助。
发布于 2013-07-26 09:54:39
你用"ChrootDirectory“吗?如果您的"/usr/libexec/openssh/sftp-server“存在,这将解释”未找到的文件“。
您应该使用“子系统sftp内部-sftp”(或者放弃Chroot)。
https://serverfault.com/questions/381535
复制