vscode通过多个跳板机连接目标机(两种方案亲测成功)

本文介绍了如何在OpenSSH7.3及以上版本中使用ProxyJump进行多层跳板机连接,以及ProxyCommand的使用方法,还探讨了免密登录的过程,包括公钥管理。作者提到ProxyCommand在某些情况下可能会遇到问题,但提供了替代的成功配置示例。

1、ProxyJump(推荐使用)

需要OpenSSH 7.3以上版本才可使用,可用下列命令查看:

ssh -V

ProxyJump命令行使用方法

ssh -J [email protected]:port1,[email protected]:port2

一层跳板机:

ssh dst_username@dst_ip -p dst_port -J jump_username@jump_ip:jump_port

多层跳板机用,隔开,顺序从左至右

ssh dst_username@dst_ip -p dst_port -J jump1_username@jump1_ip:jump1_port,jump2_username@jump2_ip:jump2_port

vscode中config配置

Host jump
    HostName xxx
    User xxx
    Port xxx

Host jump1
    HostName xxx
    User xxx
    Port xxx

Host server
    HostName xxx
    User xxx
    Port xxx
    ProxyJump jump,jump1

2、ProxyCommand

博客上大多的方法都是使用这种,但是本人亲测出现了诸多报错,包括重装了ssh还是有各种问题

openssh在7.3以下可使用此方法

proxycommand命令行使用方法

ssh username@目标机器IP -p 22 -o ProxyCommand='ssh -p 22 username@跳板机IP -W %h:%p'
Host JumpMachine
    # 跳板机的ip地址
    HostName A
    # 你跳板机的用户名
    User username
    # 跳板机登录端口 
    Port 22

Host TargetMachine
    # 目标机的ip地址
    HostName B
    # 你目标机的用户名
    User username
    # 目标机登录端口 
    Port 22
    ProxyCommand "openssh的安装路径"\ssh.exe -W %h:%p JumpMachine

上图方法本人使用失败了,但是有的人可以成功,暂时不清楚原因,使用下图方法反而成功了

Host server
    HostName xxxx
    User xxxx
    Port xxxx
    ProxyCommand C:/Windows/System32/OpenSSH/ssh.exe -p jump_port jump_username@jump_ip -W %h:%p

3、免密登录

1、在本地powershell中输入:

ssh-keygen

红色框里的路径即公钥保存的位置

2、以两层跳板机为例,先连接跳板机1,将本地生产的公钥复制到.ssh中的authorized_keys里

mkdir .ssh
mv id_rsa.pub .ssh
cd .ssh
cat id_rsa.pub >> authorized_keys
sudo chmod 600 authorized_keys
再重新登录服务器

3、在跳板机1里继续使用ssh-keygen把公钥以相同的方法加入到跳板机2的authorized_keys里,依此类推。

### 配置 VSCode 使用 SSH 远程开发并经过跳板 为了实现通过跳板访问目标服务器的功能,在本地计算上需先设置好 SSH 的配置文件,通常位于 `~/.ssh/config` 中。此配置应包含通往最终目的地所需的信息以及中间跃点的细节[^1]。 #### 设置 SSH 跳转主 在用户的 `.ssh/config` 文件中加入如下条目: ```bash Host final-server HostName target.server.com User your_username_on_target_server ProxyJump user@jumpserver.example.com ``` 上述配置定义了一个名为 `final-server` 的快捷方式来指向实际的目标器,并指定了用于到达该位置所必需穿越的一个或多个跳跃节点(即所谓的“跳板”)。这里假设跳板地址为 `jumpserver.example.com` 并且用户名分别为 `your_username_on_target_server` 和 `user`。 #### 安装 Remote-SSH 扩展 确保已安装 Microsoft 提供的官方插件 **Remote - SSH** 。这可以通过打开 Visual Studio Code 内部的 Extensions 市场 (`Ctrl+Shift+X`) 来完成搜索并点击 Install 操作来进行部署。 #### 创建新的远程会话 一旦完成了前面两步操作之后,则可以在 VSCode 中创建一个新的终端窗口并通过命令行启动与远端系统的连接过程;也可以利用图形界面的方式选择左侧活动栏中的绿色图标代表 “Open a Remote Connection”,接着按照提示输入相应的参数即可建立链接。 当成功建立了到远程服务器的安全通道后,就可以像平常一样编辑项目源码、运行调试工具等,享受如同本地环境般的高效工作流体验了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值