写在前面

这是一篇问题解决记录。希望能帮到遇到同样问题的读者。

强烈建议:请您先看解决步骤一节,如果您发现在下的问题和您的问题不一样,就可以及时离开本文,避免浪费时间。

正文

问题描述

在使用GoLand连接远程服务器时遇到了奇怪的问题:通过ssh连接是 successfully connected! 的,但通过SFTP连接就报 EOF while reading packet 错误。跟[1](在下的答案也更新到了这里)描述的情况一模一样。

相关环境如下:

  1. GoLand:2021.3
  2. 远程服务器:Ubuntu 20.04,非root账户(但在下可以登录root)
  3. 本地系统: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”,可能到现在都不能解决问题。

启发

格局要打开,思维要发散。当一条路走不通时,静下心来,想想能不能另辟蹊径,通过某种方法缩小问题排查范围或者找到问题本质。

解决步骤

  1. 在服务器上 whereis sftp-server ,找到sftp-server的路径,比如 /usr/libexec/sftp-server 。
  2. 打开ssh_config(多半位于 /etc/ssh/sshd_config ),找到 Subsystem sftp 开头的一句,看后面的内容。如果后面的内容与步骤1找到的路径不一样,那您的问题多半就能解决了;反之,本文帮不了您了。
  3. 将路径改成正确的路径,如 Subsystem sftp /usr/libexec/sftp-server ,保存文件。
  4. 重启sshd。(类似 /etc/init.d/sshd restart 这样的命令,同理,sshd的路径可以通过 whereis sshd 查出来)
  5. 重启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”解决方法的更多相关文章

  1. JetBrains系列IDE快捷键大全(转载)

    编辑 快捷键组合 说明 Ctrl + Space 代码自动完成提示(选择) Alt + Enter 显示意图动作和快速修复 Ctrl + P 参数信息 (在调用方法参数忘记的时候,提示) Ctrl + ...

  2. JetBrains系列IDE无法输入中文

    1 问题描述 环境Linux+fcitx,JetBrains的IDE无法输入中文,包括IDEA,PyCharm,WebStorm,CLion等等. 2 解决方案 Linux下一般使用fcitx进入中文 ...

  3. 自搭建jetbrains系列ide授权服务器

    1.下载 LicenseServer 地址:https://mega.nz/#!7B5UVY6b!Hae2ceTBPIrTowQN0sV9fQ5lGOKzGxas2ug02RZAdGU,里面有不同的服 ...

  4. JetBrains系列IDE创建文件模板

    #coding:utf-8 ''' @version: python3.6 @author: '$USER' @license: Apache Licence @contact: steinven@q ...

  5. 搭建Jetbrains家族IDE授权服务器

    虽然VS号称宇宙第一IDE但是也有不方便的地方,如果你也是C#码农我不得不向你推荐一个强大的插件ReSharper,他会是你的开发更加便捷,大大加快了开发的速度以及开发的乐趣.但是ReSharper并 ...

  6. [jetbrains系列] 外链第三方库+代码补全设置

    jetbrains系列的IDE真的是太好用了,有种相见恨晚的感觉. 在开发过程中第三方库是必不可少的,在开发的时候如果有一个可以补全的IDE可以节省查文档的时间. 举个例子:给pycharm配pysp ...

  7. JetBRAINS 系列注册机

    转载说明 本篇文章可能已经更新,最新文章请转:http://www.sollyu.com/1118/ 说明 这个是一国外的大牛写的一个 JetBRAINS 系列注册机,他里面包含了很多,我就不打字了. ...

  8. Linux(Manjaro) - IntelliJ IDEA (JetBrains) 字体模糊解决方法

    Linux(Manjaro) - IntelliJ IDEA 字体模糊解决方法 解决方法非常简单, 只要安装 JetBrains 提供的 jre 即可 使用 Octopi 或者 pacman 安装名为 ...

  9. 正版phpstorm,webstorm,goland(Jetbrains系列都可以)免费激活步骤(图文详解)(亲测有效)

    1 前言 Jetbrains系列都可以,包括webstrom,phpstorm,goland等. 附加其它方案如下: webstrom(注册机) goland(破解补丁) 2 步骤 1. 可以先试用, ...

随机推荐

  1. Labeling Balls(poj3687)

    Labeling Balls Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13109   Accepted: 3782 D ...

  2. Lightoj1011 - Marriage Ceremonies

    1011 - Marriage Ceremonies   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 ...

  3. Causal Intervention for Weakly-Supervised Semantic Segmentation

    目录 概 主要内容 普通的弱监督语义分割 因果模型 训练流程 代码 Zhang D., Zhang H., Tang J., Hua X. and Sun Q. Causal Intervention ...

  4. Two pointer方法

    I.何为Two pointer 用两个哨兵指向两个序列,通过利用序列本身的性质减少遍历次数,来更快得解决一些归并问题 基本问题 给定一个正整数递增序列和一个正整数M,求序列中两个不同位置的a,b使得a ...

  5. Java中的对象、类、抽象类、接口的理解

    1.对象 对象是个具体的东西,有着明确的属性特征和行为特征. 例如:你手上牵着的女朋友或男朋友就是个具体的对象. 如图中的苏格兰折耳猫,特征是耳朵向下呈折叠状,有着具体的颜色(你看到的颜色),并且和其 ...

  6. CSS 基础 背景相关属性操作

    1.background-color:red : //设置背景颜色为红色,rgb(0,0,0)和transparent 均为透明颜色 2.background-image(可缩bgi写用tab键) 语 ...

  7. 初识python: 类练习 - 随机数生成

    1.提取指定值之间的指定个数的随机整数. 2.继承生成随机数的类,打印"坐标". 生成随机数类: import random class GetRadndom(object): ' ...

  8. 使用 Docker 部署 Seata Server(分布式事务解决方式)

    1.获取镜像 ## 使用下面命令获取最新版本的镜像,此时我的版本是1.3.0 ## 或者可以使用docker pull seataio/seata-server:latest获取最新的镜像 docke ...

  9. python 单下划线与双下划线的区别

    来自为知笔记(Wiz)

  10. 图片上传,直接在网页中显示(支持IE,谷歌,火狐浏览器)

    <!doctype html><html lang="en"> <head> <meta charset="UTF-8" ...