在我的 macos 上,我能够以 身份登录 sftp sftp localhost
。运行时,!pwd
它显示默认目录是,/Users/username
但我想更改它/Users/username/Sites/wordpress
。
我编辑了/etc/ssh/sshd_config
文件并在文件底部添加了以下几行
Match User username
X11Forwarding no
AllowTcpForwarding yes
PermitTTY yes
PasswordAuthentication yes
ChrootDirectory /Users/username/Sites/wordpress
但是当我再次尝试在密码提示后登录时,sftp localhost
出现了如下错误
client_loop: send disconnect: Broken pipe
Connection closed
请告诉我如何修复这个错误?
编辑:
Subsystem sftp internal-sftpr
# Example of overriding settings on a per-user basis
Match User username
X11Forwarding no
AllowTcpForwarding yes
PermitTTY yes
PasswordAuthentication yes
ChrootDirectory /Users/username/Sites/wordpress
答案1
您应该配置 sshd 以internal-sftp
用于 SFTP,而不是旧的外部 sftp 服务器二进制文件。
Subsystem sftp internal-sftp
internal-sftp 可以使用 chroot 目录,而不需要将任何支持文件放置在该目录中。
您还可以阅读有关所有其他internal-sftp 与旧 sftp 服务器之间的区别。