分享最新优惠信息
购买主机更加划算

如何通过SSH ProxyJump和ProxyCommand命令连接远程Linux服务器

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

SSH ProxyJumpProxyCommand命令确定了客户端是如何通过跳转服务器、跳转主机或堡垒服务器连接到远程服务器。在本文中,小编将简单介绍Linux 中的SSH ProxyJump和ProxyCommand的使用方法。

使用SSH ProxyJump命令远程连接Linux服务器

ProxyJump命令用标志-J表示,它是在OpenSSH7.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

要使用跳转服务器连接到远程目标,命令如下所示:

$ ssh -J james@173.82.232.55  tecmint@173.82.227.89

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

使用跳转服务器连接Linux

在~/.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

通过ProxyJump SSH到远程Linux

使用SSH ProxyCommand命令连接远程Linux服务器

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

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

在这里,-W参数%h:%p将stdin和stdout转发到远程主机(%h)和远程主机的端口(%p)

要将命令生效,以下就是一个简单的示例:

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

使用ProxyCommand连接 Linux

在 ~/.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的更好替代品脱颖而出,并提供了一种更简单、无缝的方式来通过跳转主机连接到远程目标。

在使用Linux服务器时,如果需要设置跳转主机访问的话,那么ProxyJump和ProxyCommand应该是两个比较常用的命令。

未经允许不得转载:惠主机 » 如何通过SSH ProxyJump和ProxyCommand命令连接远程Linux服务器