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

Linux系统配置基于SSH跳转主机访问远程服务器详细教程

跳转主机也称为跳转服务器,英文名Jump Host,它是远程网络的中间主机或SSH网关,通过它可以连接到不同安全区域(例如非军事化区(DMZ))中的另一台主机。它桥接两个不同的安全区域并提供它们之间的受控访问。

跳转主机应该受到高度保护和监控,尤其是当它跨越专用网络和DMZ时,服务器会在互联网上为用户提供服务。

一个典型的案例是,你从公司内部网络的台式机或笔记本电脑连接,该内部网络通过防火墙高度安全地连接到DMZ。为了方便地管理DMZ中的服务器,则可以通过跳转主机访问它。

简而言之,跳转主机就是一个Linux服务器,可通过SSH协议连接到私有网络上其它Linux 服务器的网关。在本文中,小编简单介绍如何通过跳转主机访问远程Linux服务器,此外还将在每个用户的SSH客户端配置中配置必要的设置。

其实,SSH跳转服务器设置的原理很简单,就是通过中间服务器来访问目标服务器。可以考虑以下一个简单的场景:

SSH跳转主机

为了更清楚帮助大家了解,下面是一个简单的设置,演示了SSH跳转服务器的作用,可以说是一目了然:

SSH跳转服务器设置

配置SSH跳转主机的原因

配置跳转服务器可以为你的基础设施提供了一个网关,并减少了对服务器资源的潜在攻击面。它还提供设备的透明管理以及资源的单一入口。

不过需要注意的是,当将跳转服务器合并到你的基础架构中时,请确保服务器已进行安全加固,否则使用或不使用跳转主机是没有区别的。

如何创建一个简单的SSH跳转服务器

现在简单介绍如何创建一个简单的SSH跳转服务器,以下是本示例的简单设置:

  • 始发IPD地址:105.68.77.84。
  • 跳转服务器IP地址(host-jump):173.82.232.55。
  • 目标服务器IP地址(host_destination):173.82.227.89。

在上面的示例中,你想连接到host_destination(173.82.227.89),但由于防火墙、路由和访问权限的设置,必须通过host-jump(173.82.232.55才能访问。实际上需要使用跳转主机进行访问原因有很多,因人而异。

动态跳转主机列表

通过跳转主机连接到目标服务器的最简单方法是在命令行中使用-A-J标志。这告诉SSH建立到跳转主机的连接,然后从那里建立到目标服务器的TCP转发(确保你有服务器之间的无密码SSH登录全向)。

$ ssh -A -J user@jump-server  user@destination server

例如,在本文示例设置中,在跳转服务器上配置了名为james的用户,在目标或目标系统上配置了tecmint 这样该命令从原始IP看起来如下。

$ ssh -A -J james@173.82.232.55  tecmint@173.82.227.89

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

使用SSH跳转主机连接服务器

注意,如果机器上的用户名或端口不同,请在终端上指定它们,命令如下图所示:

$ ssh -J username@host1:port username@host2:port

多个跳转主机列表

其实,可以使用相同的语法在多个服务器上进行跳转,命令如下:

$ ssh -J username@host1:port,username@host2:port username@host3:port

静态跳转主机列表

静态跳转主机列表意味着,你需要知道连接机器所需的一个或多个跳转主机因此,需要在~/.ssh/config文件中添加以下静态跳转主机的“路由”,并指定主机别名,具体如下图所示:

### 第一个跳转主机,直接可达
Host vps1
  HostName vps1.example.org
### 通过vps1.example.org跳转到的主机
Host contabo
  HostName contabo.example.org
  ProxyJump vps1

现在尝试通过跳转主机连接到目标服务器,如下图所示。

$ ssh -J vps1 contabo

通过Jumphost登录目标主机

第二种方法是使用ProxyCommand选项在~.ssh/config或$HOME/.ssh/conconfig文件中添加跳转主机配置,如图所示。

在此示例中,目标主机为contabo,跳转主机为vps1。

Host vps1
	HostName vps1.example.org
	IdentityFile ~/.ssh/vps1.pem
	User ec2-user

Host contabo
	HostName contabo.example.org	
	IdentityFile ~/.ssh/contabovps
	Port 22
	User admin	
	Proxy Command ssh -q -W %h:%p vps1

保存更改并退出文件。当然,要应用更改,请重新启动SSH守护进程,命令如下:

$ sudo systemctl restart ssh

现在简单了解下配置文件中使用的选项:

  • -q– 这代表安静模式,它会抑制警告和诊断消息。
  • -W– 请求将客户端上的标准输入和输出通过安全通道转发到PORT上的HOST。
  • %h– 指定要连接的主机。
  • %p– 指定要连接到远程主机上的端口。

要通过跳转服务器从原始 IP“跳转”到目标系统,只需运行以下命令:

$ ssh contabo

上述命令将首先在受ProxyCommand影响的后台打开到vps1的ssh连接,然后启动到目标服务器contabo的ssh会话。

设置SSH跳转服务器的安全性

使此设置更安全的方法之一是将公共SSH密钥从原始系统复制到跳转服务器,然后最终复制到目标系统,然后禁用密码身份验证。具体可以查看Linux系统中设置SSH无密码登录的三个步骤。或者,也可以查看保护和强化OpenSSH服务器安全的七种方法

需要注意的是,请确保跳转服务器中没有存放敏感和重要的机密数据,因为这可能会导致访问凭据(例如用户名和密码)泄露,从而导致整个系统范围内的漏洞。

总结

目前就是这样,主要介绍了在Linux系统中配置基于SSH跳转主机,通过它可以访问远程服务器,如果对于原始IP主机的安全性比较看重的话,那么建立跳转主机访问目标Linux服务器是非常有必要的。

说白了,跳转主机就是一个中转平台,相当于第三方中介的作用,可以更好的保护原始IP用户的数据隐私安全。如果拿租房来举例,就是能更加安全保护租客的隐私信息,大概就是这个原理,懂了吧~

未经允许不得转载:惠主机 » Linux系统配置基于SSH跳转主机访问远程服务器详细教程

相关文章