昔日埋雷不经意,今朝踩雷排查难:JetBrains系列IDE使用SFTP连接远程服务器报“EOF while reading packet”解决方法
写在前面
这是一篇问题解决记录。希望能帮到遇到同样问题的读者。
强烈建议:请您先看解决步骤一节,如果您发现在下的问题和您的问题不一样,就可以及时离开本文,避免浪费时间。
正文
问题描述
在使用GoLand连接远程服务器时遇到了奇怪的问题:通过ssh连接是 successfully connected! 的,但通过SFTP连接就报 EOF while reading packet 错误。跟[1](在下的答案也更新到了这里)描述的情况一模一样。
相关环境如下:
- GoLand:2021.3
- 远程服务器:Ubuntu 20.04,非root账户(但在下可以登录root)
- 本地系统:Win10
解决过程
1. 网上最普遍的说法是更新密码(因为密码已过期)或者重启IDE。但这两种方法都不奏效。首先,在下的服务器密码过期时间是never(读者可以自行学习如何查看Linux账户的密码过期时间),并且在下更改了密码后仍然没有解决问题。其次,重启IDE毫无帮助。
2. 在下突发奇想,既然GoLang无法SFPT连接远程服务器,那我直接通过命令行连接呢?这样就能确定是GoLand的问题还是服务器的问题了。于是,在下打开PowerShell,键入命令 sftp -v -P 22 user_name@IP ,回车,提示输入密码,输入密码再回车,得到了报错 debug1: Exit status 127 Connection closed 。
3. 在Google上检索 linux sftp Connection closed 127 ,于是找到了[2][3][4]。至此,问题解决。
原因分析
1. 在下回想起来,之前在服务器上卸载重装过openssh,当时一通乱搞,很可能就是那个时候“活没干利索”,导致配置文件中sftp-server的路径出现了错误,雷就此埋下。
2. GoLand的报错只报了结果而没有报原因。Connection因为找不到命令(因为路径没有配置对,当然找不到了,退出码127就是“command not found”的意思)而closed了,所以当reading packet时,自然就EOF了。如果死磕“EOF while reading packet”,可能到现在都不能解决问题。
启发
格局要打开,思维要发散。当一条路走不通时,静下心来,想想能不能另辟蹊径,通过某种方法缩小问题排查范围或者找到问题本质。
解决步骤
- 在服务器上 whereis sftp-server ,找到sftp-server的路径,比如 /usr/libexec/sftp-server 。
- 打开ssh_config(多半位于 /etc/ssh/sshd_config ),找到 Subsystem sftp 开头的一句,看后面的内容。如果后面的内容与步骤1找到的路径不一样,那您的问题多半就能解决了;反之,本文帮不了您了。
- 将路径改成正确的路径,如 Subsystem sftp /usr/libexec/sftp-server ,保存文件。
- 重启sshd。(类似 /etc/init.d/sshd restart 这样的命令,同理,sshd的路径可以通过 whereis sshd 查出来)
- 重启IDE,重新连接,成功。(这一步不能省略)
参考:
[1] ftp - SFTP - "EOF while reading packet" error in PhpStorm, works fine in FileZilla - Stack Overflow
[2] SFTP无法连接,报“Connection closed by server with exitcode 127_weixin_39833509的博客-CSDN博客
[3] SFTP error using Cyberduck: EOF while reading packet | DigitalOcean
[4] centos - Can connect via SSH - but not via SFTP? Exit status 127 - Server Fault
写在后面
希望这篇文章能帮到遇到同样问题的读者。由于在下才疏学浅,能力有限,错误疏漏之处在所难免,望广大读者批评指正,您的批评是在下前进的不竭动力。
昔日埋雷不经意,今朝踩雷排查难:JetBrains系列IDE使用SFTP连接远程服务器报“EOF while reading packet”解决方法的更多相关文章
- JetBrains系列IDE快捷键大全(转载)
编辑 快捷键组合 说明 Ctrl + Space 代码自动完成提示(选择) Alt + Enter 显示意图动作和快速修复 Ctrl + P 参数信息 (在调用方法参数忘记的时候,提示) Ctrl + ...
- JetBrains系列IDE无法输入中文
1 问题描述 环境Linux+fcitx,JetBrains的IDE无法输入中文,包括IDEA,PyCharm,WebStorm,CLion等等. 2 解决方案 Linux下一般使用fcitx进入中文 ...
- 自搭建jetbrains系列ide授权服务器
1.下载 LicenseServer 地址:https://mega.nz/#!7B5UVY6b!Hae2ceTBPIrTowQN0sV9fQ5lGOKzGxas2ug02RZAdGU,里面有不同的服 ...
- JetBrains系列IDE创建文件模板
#coding:utf-8 ''' @version: python3.6 @author: '$USER' @license: Apache Licence @contact: steinven@q ...
- 搭建Jetbrains家族IDE授权服务器
虽然VS号称宇宙第一IDE但是也有不方便的地方,如果你也是C#码农我不得不向你推荐一个强大的插件ReSharper,他会是你的开发更加便捷,大大加快了开发的速度以及开发的乐趣.但是ReSharper并 ...
- [jetbrains系列] 外链第三方库+代码补全设置
jetbrains系列的IDE真的是太好用了,有种相见恨晚的感觉. 在开发过程中第三方库是必不可少的,在开发的时候如果有一个可以补全的IDE可以节省查文档的时间. 举个例子:给pycharm配pysp ...
- JetBRAINS 系列注册机
转载说明 本篇文章可能已经更新,最新文章请转:http://www.sollyu.com/1118/ 说明 这个是一国外的大牛写的一个 JetBRAINS 系列注册机,他里面包含了很多,我就不打字了. ...
- Linux(Manjaro) - IntelliJ IDEA (JetBrains) 字体模糊解决方法
Linux(Manjaro) - IntelliJ IDEA 字体模糊解决方法 解决方法非常简单, 只要安装 JetBrains 提供的 jre 即可 使用 Octopi 或者 pacman 安装名为 ...
- 正版phpstorm,webstorm,goland(Jetbrains系列都可以)免费激活步骤(图文详解)(亲测有效)
1 前言 Jetbrains系列都可以,包括webstrom,phpstorm,goland等. 附加其它方案如下: webstrom(注册机) goland(破解补丁) 2 步骤 1. 可以先试用, ...
随机推荐
- Labeling Balls(poj3687)
Labeling Balls Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13109 Accepted: 3782 D ...
- Lightoj1011 - Marriage Ceremonies
1011 - Marriage Ceremonies PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 ...
- Causal Intervention for Weakly-Supervised Semantic Segmentation
目录 概 主要内容 普通的弱监督语义分割 因果模型 训练流程 代码 Zhang D., Zhang H., Tang J., Hua X. and Sun Q. Causal Intervention ...
- Two pointer方法
I.何为Two pointer 用两个哨兵指向两个序列,通过利用序列本身的性质减少遍历次数,来更快得解决一些归并问题 基本问题 给定一个正整数递增序列和一个正整数M,求序列中两个不同位置的a,b使得a ...
- Java中的对象、类、抽象类、接口的理解
1.对象 对象是个具体的东西,有着明确的属性特征和行为特征. 例如:你手上牵着的女朋友或男朋友就是个具体的对象. 如图中的苏格兰折耳猫,特征是耳朵向下呈折叠状,有着具体的颜色(你看到的颜色),并且和其 ...
- CSS 基础 背景相关属性操作
1.background-color:red : //设置背景颜色为红色,rgb(0,0,0)和transparent 均为透明颜色 2.background-image(可缩bgi写用tab键) 语 ...
- 初识python: 类练习 - 随机数生成
1.提取指定值之间的指定个数的随机整数. 2.继承生成随机数的类,打印"坐标". 生成随机数类: import random class GetRadndom(object): ' ...
- 使用 Docker 部署 Seata Server(分布式事务解决方式)
1.获取镜像 ## 使用下面命令获取最新版本的镜像,此时我的版本是1.3.0 ## 或者可以使用docker pull seataio/seata-server:latest获取最新的镜像 docke ...
- python 单下划线与双下划线的区别
来自为知笔记(Wiz)
- 图片上传,直接在网页中显示(支持IE,谷歌,火狐浏览器)
<!doctype html><html lang="en"> <head> <meta charset="UTF-8" ...