![为用户设置 Chrooting SFTP](https://linux22.com/image/603897/%E4%B8%BA%E7%94%A8%E6%88%B7%E8%AE%BE%E7%BD%AE%20Chrooting%20SFTP.png)
我想创建 SFTP 用户并限制对目录的访问。因此我创建了用户并在配置中添加了以下内容
Match user joe
ChrootDirectory /storage/public
ForceCommand /usr/libexec/sftp-server
但是,我似乎无法连接到服务器,出现错误
ssh: connect to host 11.22.33.44 port 22: Connection refused
答案1
“连接被拒绝”错误消息通常意味着相关接口:端口上没有任何内容正在监听,因此首先要做的是检查并根据需要修复此问题。要找出您的 sshd 正在监听的位置,请运行以下命令
netstat -tnlp | grep sshd
tcp 0 0 192.168.10.188:2222 0.0.0.0:* LISTEN 29929/sshd
tcp 0 0 192.168.10.188:22 0.0.0.0:* LISTEN 29929/sshd
请注意,这显示 sshd 在单个 IP 地址的端口 22 和 2222 上运行。您看到的内容很可能有所不同,但您应该能够弄清楚并查看 sshd 正在监听的位置。
如果 sshd 没有监听与你的主机对应的 IP 地址,那么你可以在文件中添加 ListenAddress/etc/ssh/sshd_config
指令
ListenAddress 11.22.33.44
然后重新启动 sshd。
如果你的 sshd 正在监听非标准端口(例如 2222),那么你可以使用
sftp -p 2222 joe@yourhost
连接到系统。如果您想使用标准端口22
,则可以在/etc/ssh/sshd_config
Port 22
Port 2222
然后重新启动 sshd。
答案2
问题出在 sshd-config 文件上。现在我将与 chrooting 相关的配置文本放在文件末尾,它就起作用了。谢谢大家的帮助