VS Code Remote-SSH + 跳板机配置指南(Hadoop/Spark 集群环境)


本文记录如何使用 VS Code Remote-SSH 插件,通过跳板机访问 Spark/Hadoop 高可用集群,并排查典型连接失败问题,适用于无公网暴露的私有计算环境。


一、场景说明

在 Hadoop/Spark 高可用集群部署中,常见结构如下:

  • 本地开发机(带 VS Code)
  • 跳板机(Jump Host,例如 DELL)
  • 内网节点(如 node20_jump)

由于集群节点位于私有网络,外部访问需先连接跳板机,再进入目标节点。


二、SSH 配置核心示例

创建或修改本地 ~/.ssh/config 文件如下:

Host DELL
    HostName xx.xx.xx.xx
    Port 22
    User xx

Host node20_jump
    HostName xx.xx.xx.xx
    User xx
    Port 22
    IdentityFile ~/.ssh/id_ed25519
    HostKeyAlgorithms +ssh-rsa
    PubkeyAcceptedKeyTypes +ssh-rsa
    ProxyJump xx@xx.xx.xx.xx

说明

  • DELL 是中转跳板机;
  • node20_jump 是 Spark/Hadoop 节点;
  • 使用 ProxyJump 让 SSH 自动通过 DELL 中转;
  • 如果私钥为 ed25519 类型,需部署其公钥至目标节点。

三、VS Code 设置补充

确保 VS Code 能读取你的 config 文件:

  1. 打开 VS Code 设置(settings.json);
  2. 添加以下配置项:
"remote.SSH.configFile": "C:\\Users\\xx\\.ssh\\config"

四、排查常见问题

1. 公钥认证失败

错误日志示例:

Permission denied (publickey,gssapi-keyex,gssapi-with-mic)

解决方法:

  • 确认本地存在 id_ed25519 和 id_ed25519.pub;
  • 目标机器中 ~/.ssh/authorized_keys 包含正确的公钥内容;
  • 权限设置如下:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
chmod 600 ~/.ssh/authorized_keys

2. ProxyJump 未生效

可能表现为 VS Code 无法通过跳板连接,需确认:

  • ~/.ssh/config 中 ProxyJump 是否配置;
  • VS Code 设置文件中是否显式声明了 configFile 路径;
  • 使用如下命令验证能否连通:
ssh -J DELL node20_jump

3. 跳板机到目标主机不通

在跳板机上测试连接:

ssh xx@xx.xx.xx.xx

如仍失败,需检查目标节点的 SSH 服务是否正常、公钥是否已添加,或是否存在防火墙策略阻挡。


五、实用命令小结

功能 命令示例
上传公钥 ssh-copy-id -i ~/.ssh/id_ed25519.pub xx@xx.xx.xx.xx
手动跳板连接 ssh -J xx@xx.xx.xx.xx xx@xx.xx.xx.xx
检查详细日志 ssh -v node20_jump

六、结语

使用 Remote-SSH 能显著提升 Spark/Hadoop 集群的开发效率,结合 ProxyJump 能解决多级网络隔离带来的连接限制。建议优先通过命令行调试,再将配置迁移到 VS Code 中使用。如遇其他连接问题,欢迎留言交流。


文章作者: QT
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 QT !
赏
 上一篇
SFTP代理冲突的实战解决方案与mihomo配置优化 SFTP代理冲突的实战解决方案与mihomo配置优化
记录在使用mihomo作为透明代理时,SFTP上传被劫持问题的解决过程。重点介绍如何通过NO_PROXY和规则直连实现上传功能正常化。
下一篇 
CentOS SFTP上传失败的排查全过程(含代理干扰分析) CentOS SFTP上传失败的排查全过程(含代理干扰分析)
本文记录一次排查“CentOS中某用户SFTP无法上传文件”的过程,涉及权限检查、SSH配置审查、代理干扰判断等多个方向。最终问题定位为代理干扰所致,附解决方案。
  目录