Bitvise SSH Client——配置跳板机:通过中转服务器连接内网服务器

1. 背景介绍

在远程服务器使用过程中,经常会遇到这样的情况:目标服务器位于内网,无法从本地电脑直接访问,但可以通过一台具有访问权限的中转服务器进行连接。

例如,本地电脑可以连接公网服务器 A,而目标服务器 B 只能通过服务器 A 访问。此时,可以利用 SSH 跳板机(Jump Host)机制建立连接,实现从本地电脑到目标服务器的间接访问。

本文介绍如何使用 Bitvise SSH Client 配置 SSH 跳板连接。配置完成后,可以直接连接目标服务器,并使用终端和 SFTP 等功能。

1.1 网络拓扑

整体连接过程如下:

text 复制代码
本地 Windows 电脑
        |
        | SSH
        v
服务器 A:中转服务器
        |
        | SSH
        v
服务器 B:目标服务器

其中:

  • 本地电脑:安装 Bitvise SSH Client。
  • 服务器 A:能够从本地访问,并且具有访问服务器 B 的网络权限。
  • 服务器 B:最终需要登录的目标服务器,可能位于内网。

需要注意的是,中转服务器不仅要能够访问目标服务器的 SSH 端口,其 SSH 服务端还需要允许相应的 TCP 转发操作。

1.2 软件与配置说明

本文使用 Bitvise SSH Client 9.66 作为示例。

提前准备以下信息:

配置项 中转服务器 A 目标服务器 B
服务器地址 <JUMP_HOST> <TARGET_HOST>
SSH 端口 <JUMP_PORT> <TARGET_PORT>
用户名 <JUMP_USER> <TARGET_USER>
认证方式 密码或 SSH 密钥 密码或 SSH 密钥

以上均为占位符,实际配置时需要替换成自己的服务器信息。SSH 默认端口通常为 22,但应以服务器的实际配置为准。

2. 配置中转服务器 A

第一步是先在 Bitvise 中建立一个能够独立连接中转服务器 A 的配置文件。

2.1 填写服务器信息

打开 Bitvise SSH Client,在 Login 选项卡中填写以下内容:

配置项 填写内容
Host <JUMP_HOST>
Port <JUMP_PORT>
Username <JUMP_USER>
Initial method 根据实际认证方式选择
Password 中转服务器对应的密码(如使用密码认证)

如果使用 SSH 密钥认证,则根据服务器的认证要求配置相应的客户端密钥。

2.2 关闭代理设置

在主界面左下方点击 Proxy settings。

在弹出的窗口中,确保 Use proxy 未勾选。

因为当前配置连接的是中转服务器本身,不需要再经过其他代理。

点击 OK 返回主界面。

2.3 测试并保存配置

点击 Log in,测试是否可以正常连接服务器 A。

连接成功后,返回主界面,点击左侧的 Save profile as,将当前配置保存为:

text 复制代码
jump-host.tlp

这个文件保存的是中转服务器 A 的连接配置,后续配置目标服务器 B 时会用到。

建议使用容易辨认的文件名,并将配置文件保存在安全的位置。

3. 配置目标服务器 B

中转服务器配置完成后,接下来创建目标服务器的独立连接配置。

3.1 创建新配置

在 Bitvise 主界面左侧点击 New profile,创建一个新的配置文件。

在 Login 选项卡中填写目标服务器 B 的信息:

配置项 填写内容
Host <TARGET_HOST>
Port <TARGET_PORT>
Username <TARGET_USER>
Initial method 根据实际认证方式选择
Password 目标服务器对应的密码(如使用密码认证)

这里填写的是最终目标服务器 B 的地址、用户名和认证信息,而不是中转服务器 A 的信息。

对于只能通过中转服务器访问的内网地址,即使目标服务器地址是内网 IP,也可以将其填写在 Host 中。

3.2 保存目标服务器配置

点击左侧的 Save profile as,将当前配置保存为:

text 复制代码
target-server.tlp

至此,我们已经拥有两个独立的配置文件:

text 复制代码
jump-host.tlp
target-server.tlp

其中,第一个配置文件负责连接中转服务器 A,第二个配置文件负责连接目标服务器 B。下一步需要将两者关联起来。

4. 在目标服务器配置中设置 SSH 跳板代理

这是整个配置过程中最关键的一步。

确保当前编辑的是目标服务器 B 的配置,也就是 target-server.tlp。

4.1 打开 Proxy settings

在 Bitvise 主界面左下方点击 Proxy settings,打开代理设置窗口。

窗口中可以看到类似以下选项:

  • Use global proxy settings
  • Use profile proxy settings
  • Use proxy
  • Proxy type

Bitvise 可以使用全局代理设置,也可以针对当前连接配置独立的代理设置。为了避免影响其他服务器连接,建议在目标服务器配置中使用独立的代理设置。

4.2 选择当前配置的代理设置

选中:

text 复制代码
Use profile proxy settings

然后勾选:

text 复制代码
Use proxy

这样,代理设置仅应用于当前目标服务器配置,不会直接更改其他连接配置的代理方式。

4.3 将代理类型设置为 SSH

在 Proxy type 下拉菜单中选择:

text 复制代码
SSH

注意:这里应使用 SSH 跳板代理,而不是 HTTP 代理。

HTTP 代理与 SSH 跳板机是两种不同的代理方式。如果中转服务器本身提供的是 SSH 服务,就应使用 SSH 类型的代理配置。

4.4 选择中转服务器的配置文件

切换为 SSH 代理类型后,根据界面显示找到用于指定 SSH 配置文件的选项,通常会显示为 Profile file 或类似名称。

选择之前保存的中转服务器配置文件:

text 复制代码
jump-host.tlp

该文件对应服务器 A,包含中转服务器的地址、端口、用户名以及相关认证设置。

完成后点击 OK,返回主界面,并再次保存 target-server.tlp。

至此,目标服务器配置已经关联到中转服务器配置。

5. 通过跳板机连接目标服务器

配置完成后,后续连接通常只需要以下几个步骤:

  1. 在 Bitvise 中加载 target-server.tlp。
  2. 检查目标服务器的 Host、Port 和 Username 是否正确。
  3. 点击 Log in。
  4. 根据提示完成认证,并在首次连接时核实服务器主机密钥指纹。

Bitvise 会先建立到中转服务器 A 的 SSH 连接,再通过该连接访问目标服务器 B。

连接路径如下:

text 复制代码
本地电脑
   |
   | Bitvise SSH Client
   v
中转服务器 A
   |
   | SSH 跳板转发
   v
目标服务器 B

连接成功后,就可以在 Bitvise 中使用终端和 SFTP 等功能,访问最终目标服务器。

重点:日常使用时加载目标服务器 B 的配置即可,不需要每次都手动先登录中转服务器 A。

6. 与 OpenSSH ProxyJump 配置的对应关系

如果平时也使用 Linux、macOS 或 Windows OpenSSH,可以通过 ProxyJump 实现类似的连接方式。

例如,在 SSH 配置文件 ~/.ssh/config 中,可以使用以下模板:

sshconfig 复制代码
Host jump-host
    HostName <JUMP_HOST>
    User <JUMP_USER>
    Port <JUMP_PORT>

Host target-server
    HostName <TARGET_HOST>
    User <TARGET_USER>
    Port <TARGET_PORT>
    ProxyJump jump-host

其中:

  • jump-host 定义中转服务器的连接方式。
  • target-server 定义最终目标服务器的连接方式。
  • ProxyJump jump-host 表示通过中转服务器连接目标服务器。

保存配置后,在终端中执行:

bash 复制代码
ssh target-server

便可以尝试通过跳板机连接目标服务器。

这与 Bitvise 中分别保存中转服务器配置、再将目标服务器配置关联到中转配置的思路一致。

7. 常见问题排查

7.1 中转服务器可以连接,但目标服务器无法连接

首先检查以下几项:

  • 目标服务器的地址和 SSH 端口是否填写正确。
  • 中转服务器 A 是否能够访问目标服务器 B。
  • 目标服务器 SSH 服务是否正常运行。
  • 中转服务器是否允许 SSH TCP 转发。
  • 目标服务器防火墙是否允许来自中转服务器的连接。

如果目标服务器使用内网地址,应特别确认该地址在中转服务器所在的网络环境中是否可达。

7.2 出现 Permission denied

这通常表示认证失败。

分别检查中转服务器 A 和目标服务器 B 的认证信息,确认用户名、密码或 SSH 密钥是否匹配。

需要注意的是,两个服务器可以使用不同的认证凭据。即使两边碰巧使用相同密码,也不代表它们共用同一个认证配置。

7.3 出现 Connection timed out

可能的原因包括:

  • 本地电脑无法访问中转服务器。
  • 中转服务器的地址或端口填写错误。
  • 中转服务器无法访问目标服务器。
  • 防火墙或安全组拦截了 SSH 连接。
  • 目标服务器未开放相应的 SSH 端口。

可以先确认直接连接中转服务器是否成功,再排查中转服务器到目标服务器之间的网络连接。

7.4 每次连接都需要重新配置代理

建议将中转服务器和目标服务器分别保存为独立的 .tlp 配置文件,并在目标服务器配置中关联中转服务器配置文件。

这样可以避免反复填写中转服务器信息,也方便在有多台目标服务器时复用同一个跳板配置。

7.5 首次连接时出现主机密钥提示

首次连接服务器时,Bitvise 可能会提示尚未记录服务器主机密钥。

在接受之前,应通过可信渠道核对服务器指纹。不要仅因为连接出现警告就直接接受未知主机密钥。

如果已记录的主机密钥突然发生变化,也应先确认原因,再继续连接。

8. 安全建议

在配置和使用 SSH 跳板机时,建议注意以下事项:

  1. 妥善保管配置文件。 Bitvise 配置文件可能包含服务器连接信息,部分情况下还可能保存加密后的凭据。不要将包含敏感信息的配置文件公开上传到 GitHub 等公共平台。
  2. 优先使用 SSH 密钥认证。 在服务器策略允许的情况下,可使用密钥认证,并妥善保管私钥。
  3. 不要在博客中公开真实连接信息。 发布教程或截图时,应隐藏服务器 IP、域名、用户名、密码、私钥路径及其他敏感内容。
  4. 遵循服务器访问权限要求。 只通过获得授权的中转服务器访问相应的目标主机。
  5. 合理设置转发权限。 服务器管理员应根据实际需求限制 SSH 转发权限,避免不必要的访问风险。

9. 总结

使用 Bitvise SSH Client 配置 SSH 跳板连接,核心是将中转服务器和目标服务器的连接信息分别保存,再通过代理设置将两者关联。

整体流程可以概括为:

text 复制代码
创建中转服务器配置
        |
        v
测试连接并保存配置文件
        |
        v
创建目标服务器配置
        |
        v
启用独立代理设置
        |
        v
选择 SSH 代理类型
        |
        v
关联中转服务器配置文件
        |
        v
保存配置并连接目标服务器

配置完成后,只需加载目标服务器配置并点击登录,就可以通过中转服务器连接目标主机,无需每次手动建立两次 SSH 会话。

对于需要频繁访问内网 GPU 服务器、实验室计算节点或其他受网络访问限制的服务器的场景,这种方式能够简化连接流程,提高远程开发和文件传输的便利性。

相关推荐
小诗懂技术1 小时前
Linux设备驱动并发控制总结_CSDN
linux·运维·服务器
colinu1 小时前
Docker 容器端口未发布问题快速排查文档
运维·docker·容器
迪康coolmu1 小时前
迪康Defender网络准入控制系统落地实战:部署、配置与问题排查记录
运维·开发语言·网络·经验分享·php
Dovis(誓平步青云)1 小时前
一年1956亿行:智能电表场景下的时序数据存储实践
运维·前端·自动化·音视频·prometheus
Y3815326621 小时前
SerpBase + RAG 实战:用搜索 API 给知识库接上实时数据,回答不再过期
java·服务器·数据库
北风toto1 小时前
银河麒麟 V10 内网 YUM 源修复实战教程(U盘中转版)
linux·服务器
韩曙亮1 小时前
【错误记录】网络配置问题处理 ( 获取服务器的 出口 和 入口 IP | 定位网络变化 )
服务器·网络·tcp/ip
开开心心就好1 小时前
文件关联被破坏怎么修?免费工具一键修复
java·服务器·开发语言·pdf·ocr·启发式算法·宽度优先
小白鸽i1 小时前
【linux】麒麟桌面版安装人大金仓V8
linux·运维