如何在 Linux 中使用 SSH ProxyJump 和 SSH ProxyCommand如何在 Linux 中使用 SSH ProxyJump 和 SSH ProxyCommand如何在 Linux 中使用 SSH ProxyJump 和 SSH ProxyCommand如何在 Linux 中使用 SSH ProxyJump 和 SSH ProxyCommand
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Linux 中使用 SSH ProxyJump 和 SSH ProxyCommand

发表 admin at 2025年2月28日
类别
  • 未分类
标签

简介:在本指南中,我们演示了在连接到跳转服务器时如何使用 SSH ProxyJump 和 SSH ProxyCommand 命令。

在我们之前关于如何设置 SSH Jump 服务器的指南中,我们介绍了堡垒主机的概念。 堡垒主机或跳转服务器是SSH客户端在访问目标远程Linux系统之前首先连接的中间设备。 SSH Jump 服务器充当 IT 资源的网关,从而减少攻击面。

SSH ProxyJump 和 ProxyCommand 命令确定客户端如何通过跳转服务器、跳转主机连接到远程服务器,或堡垒服务器。

本指南重点介绍 Linux 中的 SSH ProxyJump 和 SSH 代理命令。

使用 SSH ProxyJump 命令连接远程 Linux

ProxyJump 命令用 -J 标志表示。它是在 OpenSSH 服务器版本 7.3 中引入的,可帮助您通过跳过堡垒或跳转服务器来连接到远程目标。

下面的语法显示了如何使用此选项:

ssh -J <jump-server> <remote-target>

在多个堡垒或跳转服务器的情况下,语法采用以下格式。

ssh -J <jump-server-1> <jump-server-2> <remote-target>

在这两种情况下,您都将以 root 用户身份登录每一步。由于安全原因,这并不理想,因此您可能希望在每个实例中创建不同的用户。

您可以显式指定不同的用户和 SSH 端口,如图所示。

ssh -J <user@jump-host:port> <user@remote-target:port>

为了演示 ProxyJump 标志的实际作用,我们进行了如下所示的简单设置。

Jump Server IP:		173.82.232.55		User: james
Remote Target IP:	173.82.227.89		User: tecmint

要使用 Jump 服务器连接到远程目标,命令将如下所示。

ssh -J [email  [email 

该命令将提示您输入跳转服务器的用户密码,然后是目标系统的密码,您将被授予访问目标系统的权限。

在 ~/.ssh/config 文件中配置代理主机

如果您经常使用特定的堡垒连接到特定的远程目标,则可以在 ~/.ssh/config 文件中附加以下 ProxyJump 配置,以使连接无缝。发生这种情况时,您只会被验证一次,并且这种情况仅发生在远程目标上。

Host host-jump
User james
Hostname 173.82.232.55

Host host_destination
User tecmint
Hostname 173.82.227.89
Port 22

使用上述配置,您可以如图所示连接到目标。

ssh -J host_destination

使用 SSH ProxyCommand 命令连接远程 Linux

在SSH代理跳转之前,ProxyCommand是跳转主机到达远程目标的唯一方法。它的工作原理是通过跳转服务器或堡垒从远程目标转发 stdin(标准输入)和 stdout(标准输出)。

ProxyCommand 采用以下语法。

ssh -o ProxyCommand="ssh -W %h:%p <jump server>" <remote target>

此处,%h:%p 参数的 -W 将 stdin 和 out 转发到远程主机 (%h) 和远程主机主机的端口(%p)。

要将命令付诸实践,我们的命令如下所示

ssh -o ProxyCommand="ssh -W %h:%p 173.82.232.55" 173.82.227.89

在 ~/.ssh/config 文件中配置 ProxyCommand

当然,输入整个命令既乏味又耗时。为了避免键入如此冗长的命令,请将以下代码行添加到您的 ~/.ssh/config 文件中。

Host host-destination
Hostname 173.82.227.89
ProxyCommand ssh -q -W %h:%p host-jump

保存并退出。

现在您所要做的就是运行以下命令来连接到远程服务器。

ssh host-destination
结论

在本指南中,我们演示了 ProxyJump 和 ProxyCommand 命令的工作原理。一般来说,ProxyJump 是 ProxyCommand 的更好替代品,并提供了一种通过跳转主机连接到远程目标的更简单、无缝的方式。

©2015-2025 Norria support@norria.com