解决SFTP 连接错误 :Connection to xxx closed by remote host.方案记录,SFTP debug问题记录
最近在调试一个自己做的工具,向SFTP上传整个文件夹内的内容,上传完成后要删除本地文件夹内所有的内容。打算自己搭建一个docker测试平台,就用了公司服务器的版本的centos6.6搭建了一个运行平台搭建教程请看:https://blog.csdn.net/weixin_41295682/article/details/80480422这里我用的是本机的 4022端口映射容器内的22端口,安装完成
最近在调试一个自己做的工具,向SFTP上传整个文件夹内的内容,上传完成后要删除本地文件夹内所有的内容。
打算自己搭建一个docker测试平台,就用了公司服务器的版本的centos6.6搭建了一个运行平台
搭建教程请看: https://blog.csdn.net/weixin_41295682/article/details/80480422
这里我用的是本机的 4022端口映射容器内的22端口,安装完成后发现使用sftp账号登录不上去,但是ssh sftp root账号却可以登录...
在使用上面教程专门设置的sftp账号登录时候 会报错:
Connection to 127.0.0.1 closed by remote host.
Connection to 127.0.0.1 closed.
这里用 sftp -oPort=4022 -vvv user1@127.0.0.1 登录和调试 其中 -vvv 的目的目的是在连接时候开启debug
我这里的调试信息中关键的是:
....
debug1: fd 0 clearing O_NONBLOCK
debug3: fd 1 is not O_NONBLOCK
...
如果你连接sftp时候也跟我报一样的错,那么问题就快解决了
查找你的/etc/ssh/sshd_config 文件中的 ChrootDirectory 这一个文件夹它要求 它的所有者是 root 所有group也是root
找到对应的文件夹 用命令 chown root: <文件夹位置>来更改文件夹权限
然后在这个文件夹下面生成任意一个文件夹,命令chown user1: <新的文件夹> (这里的user1 改为你要用sftp登录的用户)
给这个文件夹的所有者换成sftp用户
这样你就能连接上sftp,并且在登录后的文件夹里仅有上面新建的文件夹,在新建的文件夹里这个用户可以任意操作,文件夹外不能操作。
更多推荐
所有评论(0)