(从 StackOverflow 移出:https://stackoverflow.com/questions/4589725/sftp-via-shell-how-it-is-possible)
像http://mysecureshell.sourceforge.net/只需输入以下命令将其指定为 shell 即可提供 SFTP 访问:
usermod -s /bin/MySecureShell myuser
?
我使用的是 Debian Lenny,默认使用 sshd/OpenSSH。
这是 SSH 协议的一个功能,允许用户 shell 处理 sftp 命令吗?我无法理解这一点,因为 OpenSSH 通常需要 sftp-server 模块(或较新版本中的内部模块)——这让我认为 sftp 命令甚至不会到达 shell,而是更早地或由不同的代码路径处理。
答案1
如果你查看:/etc/ssh/sshd_config
您将会看到以下行:
Subsystem sftp /usr/lib/openssh/sftp-server
我相信它的作用是将任何连接到 SFTP 的客户端(通过将协议传递为 SFTP 而不是 SSH)链接到使用 SSH 登录,然后将任何请求传递给该子系统来处理实际请求