CCCczh

导航

pycharm sftp error:EOF while reading packet

现象:

  1. pycharm 连接远程服务器sftp时,ssh连接成功,但是最终建立时报错:"EOF while reading packet"
  2. ssh连接成功,但是scp传输文件时报错:“connection closed”
  3. RailDrive通过SFTP连接服务器时,报错:“connection closed”
  4. 尽管如此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_configSubsystem sftp /usr/libexec/sftp-server修改为Subsystem sftp /usr/lib/openssh/sftp-server.

方法二

直接改为:Subsystem sftp internal-sftp

参见internal-sftp和sftp-server之间的区别和联系

最后,用root权限重启sshd:

(base) czh@iipserver1:/usr/libexec$ sudo systemctl restart sshd

再去看pycharm、raildriver等,发现能正常连接sftp了。

posted on 2022-09-01 15:14  czhhbp  阅读(353)  评论(0编辑  收藏  举报