pycharm sftp error:EOF while reading packet
现象:
- pycharm 连接远程服务器sftp时,ssh连接成功,但是最终建立时报错:"EOF while reading packet"
- ssh连接成功,但是scp传输文件时报错:“connection closed”
- RailDrive通过SFTP连接服务器时,报错:“connection closed”
- 尽管如此vs code和mobaxterm可以ssh登陆后查看文件
推测是服务器ssh或者sftp问题
一开始以为是sftp不能登录,
vim /etc/passwd
发现,用户末尾命令是/bin/bash
,说明是正常的。如果是/bin/false
可能存在错误。
查看ssh是否安装,一般是有的。
>> sudo apt-get install openssh-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
openssh-server is already the newest version (1:7.2p2-4ubuntu2.10).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
查看sftp服务:
(base) czh@iipserver1:~$ whereis sftp-service
sftp-service:
(base) czh@iipserver1:~$ whereis sftp
sftp: /usr/bin/sftp /usr/share/man/man1/sftp.1.gz
说明sftp服务也存在。
再看sftp配置:
(base) czh@iipserver1:~$ cat /etc/ssh/sshd_config | grep sftp
Subsystem sftp /usr/libexec/sftp-server
但是这个文件并不存在:
(base) czh@iipserver1:/usr/libexec$ ls /usr/libexec/sftp-server
ls: cannot access '/usr/libexec/sftp-server': No such file or directory
到此时,可以判断服务器上的问题是,sshd_config中的sftp-server位置填错了。
方法一
找一下实际位置:
(base) czh@iipserver1:/usr/libexec$ locate sftp-server
/usr/lib/sftp-server
/usr/lib/openssh/sftp-server
/usr/share/doc/openssh-sftp-server
/usr/share/man/man8/sftp-server.8.gz
/var/cache/apt/archives/openssh-sftp-server_1%3a7.2p2-4ubuntu2.10_amd64.deb
/var/lib/dpkg/info/openssh-sftp-server.list
/var/lib/dpkg/info/openssh-sftp-server.md5sums
选择/usr/lib/openssh/sftp-server
作为新位置,即将/etc/ssh/sshd_config
中Subsystem sftp /usr/libexec/sftp-server
修改为Subsystem sftp /usr/lib/openssh/sftp-server
.
方法二
直接改为:Subsystem sftp internal-sftp
最后,用root权限重启sshd:
(base) czh@iipserver1:/usr/libexec$ sudo systemctl restart sshd
再去看pycharm、raildriver等,发现能正常连接sftp了。