服务器运维之跳板机
前言
跳板机和堡垒机的区别,我这里不再提了。跳板机就是一台服务器,运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作。这篇文章我主要介绍使用 MobaXterm 和 fiallshell 两种工具配置跳板机,并介绍了我其中遇到的问题。
1.MobaXterm
主要有三台机器,一台本地机器安装FinalShell(windows机器A),目标机器的ip内网地址: 172.24.148.4 (C机器),跳转机的ip内网ip地址:172.24.148.5(B机器),外网ip地址:xx.xx.xx.1 (B机器)。就是实现从机器A,通过跳转机B,访问目标机C
(1) 新建一个ssh链接,输入目标地址:172.24.148.4,用户名为目标地址的用户名。
(2) 选择网络配置,增加一个 SSH gateway,输入跳转机机的外网ip地址:xx.xx.xx.1,以及用户名
(3) 确定后,双击新建的ssh链接,进行链接,输入跳转机的密码,接受协议
(4) 打开ssh链接,接受并保存相关的认证key之类的东西,输入目标计算机的密码,就可以实现通过跳转机进行链接了。
1.MobaXterm通过跳板机连接内网
2.mobaxterm通过跳板机访问远程服务器(跳板机使用秘钥) MobaXterm 使用 ssh 直接连接远程主机,或者通过跳板机登陆远程服务器可能会出现一段时候不操作就会自动关闭连接。要解决这个过一会就断开连接的问题,我们需要在勾选 Setting 下的 SSH Keepalive 选项。注意任何配置修改后都需要重启下 MobaXterm,否则不会生效。问题是这里也没有提示从那里获取到的密钥。
3.常用的linux 命令&&ssh&&跳板机
4.MobaXterm关于多层跳板机的操作步骤 这里从A(本机)=> B(40) => C(79) =>D(98),这里说了如何配置用户名和密码,但是我尝试之后,还是无法连接。
6.远程服务器连接(密钥验证,跳板机) 这里有配置密钥,进行远程连接,还有在VSCode中进行连接的方法。
7.MobaXterm作为跳板机连接内网机器(使用私钥) (1) 新建session;(2)建立ssh连接;(3)填入跳板机的公网地址,用户名,端口号等;(4)设置主机的私钥。问题是这里没有说明的就是这个私钥的配置方法,所以我使用起来还是非常的费力。
8.MobaXterm建立有跳板机/堡垒机的SSH session(会话) 这个就是一个跳板机跳转到目标服务器上的操作。
2.finallshell
主要有三台机器,一台本地机器安装FinalShell(windows机器A),目标机器的ip内网地址: 172.24.148.4 (C机器),跳转机的ip内网ip地址:172.24.148.5(B机器),外网ip地址:xx.xx.xx.1 (B机器)。就是实现从机器A,通过跳转机B,访问目标机C。
(1) 新建ssh链接,目标地址为 xx.xx.xx.1,端口号和用户名密码为B机器的用户名密码和ssh端口号。
(2) 在上一步的基础上,选择隧道,新建隧道,本地端口填上20024,地址填上127.0.0.1,目标地址填入 172.24.148.4 (C机器) 的地址和端口。
(3) 在新建一个ssh链接,目标地址为 127.0.0.1,端口为上一步填入的端口 20024端口,用户名密码为机器C的用户名密码
(4) 先打开第一步的ssh链接,然后在打开第三步的ssh链接,这样就可以了。
1.finallshell配置跳板机连接主机
2.FinalShell设置跳板机作为代理访问真实机器
3.如何通过跳板机无缝连接需要跳转的服务器? 先搭建 本机 - A 的隧道( SSH / VPN 均可)
4.FinalShell配置隧道
5.ssh 工具教程 假设你的本地机器是 host2, 可以通过 ssh 访问 host3, 但是无法直接访问 host4 上开在 9000 端口的 http 服务, 而 host3 可以访问 host4, 此时就可以利用 ssh 隧道通过 host3 访问 host4 的服务。虽然应用场景非常的正确,但是这个转发的模版配置的感觉不对,因为这个host3并没有定义。
6.finalshell建立服务器内网其他IP端口的隧道
7.通过跳板机连接公司内网办法 主要配置监听端口,可以随意选取合法的端口数字,以及目标地址,目标端口固定为22。这样做之后,每次连接跳板机,本地的6000端口便会等价于内网服务器的22端口。之后便可以通过访问本地6000端口,连接到服务器。
3.问题
接下来我就是记录了我在配置 MobaXterm 和 FinalShell 作为跳板机的时候,遇到的问题,有些问题解决了,有些问题没有解决,可能也不需要解决,但是最后的就是通过
1.MobaXterm网络无法连接
我在另外的一个网络中,内网网络中,进行了同样的操作。我尝试使用MobaXterm作为跳板机进行跳转,但是尝试了很多次,配置了网络链接,配置了用户名密码,最后还是显示:Remote side unexpectedly closed network connection。有些文章是使用的私钥的配置方法,有些使用的是用户名密码的方法,我这里就是无法确定到底该填入那个机器的私钥,以及填入用户名密码的顺序和规则。我怀疑是网络的问题,因为这个目标网络的所有端口都不通。
【尝试】
(1) 在指定用户名密码的时候,配置了多个用户名和密码,无效。
(2) 在多篇文章中,还用了一个Setting的keepalive的选项,无效。
(3) 配置网络代理的时候,使用User SSH key,无效。
2.FinallShell网络无法连接
上面的MobaXterm无法实现跳转机登录的时候,我就尝试使用FinallShell进行跳转机配置,配置了隧道,连接了跳转机,最后还是无法从本机到目标网络。我怀疑也同样是网络的问题。
理论上配置的方法就是:
1.先配置从本机到跳板机的连接,在该连接配置中,增加了一个隧道,指定目标机地址。该隧道创建为本地ip。
2.新建一个连接,从本机,连接到隧道的本地ip地址,
3.这样就实现了,从本机经过隧道,然后连接到了目标主机的ssh连接。
【尝试】
我尝试了网上的很多的方法,最后还是显示:“connection is closed by foreign host”
1.修改防火墙配置,无效。
2.配置隧道,然后通过隧道连接目标主机,无效。
3.我还尝试使用建立隧道之后,使用命令行的方式进行链接,进行ssh -v的debug模式,无效。
尝试无效
3.connection is closed by foreign host
当我配置好了FinalShell隧道之后,进行链接的时候,出现了这个问题。刚开始我编辑了 /etc/ssh/sshd_config 配置文件,配置了下面的两个参数,结果还是无法跳转。
1 | ClientAliveInterval 60 |
因为我在一个网络中尝试成功了,另外的一个网络中没有尝试成功,我后来查看了 /etc/ssh/sshd_config 里面的配置,发现了一些不同之处。在无法使用隧道链接的网络中,我发现了下面几个参数基本上都设置了no,于是我尝试着查询这几个参数。
1 | StrictModes yes |
【解决方法】
根据我对资料的理解,我需要的就是要把这个 AllowTcpForwarding 进行打开,但是我干脆就直接把全部的都打开好了,然后关闭 FinallShell,之后重新配置隧道,最后终于可以实现通过隧道作为跳板机跳转到目标机上了。
1 | StrictModes no |
1.阿里云服务器shell:Connection closed by foreign host,finalshell:java.net.SocketException: Connection reset
2.shell中Connection closed by foreign host问题解决 ip冲突导致连接中断,换成wifi连接
3.解决mac中finalshell隧道功能无法使用本地80端口问题
4.解决 SSH Connection closed by foreign host 问题 ClientAliveInterval 60;ClientAliveCountMax 3 配置
5.SSH Port Forwarding 安全連線通道
6.ssh端口转发 ssh是个多用途的工具,不仅可以远程登录,还可以搭建socks代理、进行内网穿透,这是利用它的端口转发功能来实现的。
7.比端口转发更高级的ssh device tunnel转发
8.解决 SSH Connection closed by foreign host 问题
4.kex_exchange_identification: read: Connection reset
我建立了隧道之后,在命令行中使用ssh命令链接: ssh root@127.0.0.1 -p 6000,结果出现了这个问题。
【尝试】
我尝试更新了指纹,还是不行
1 | ## XXX.XXX.XXX.XXX 为要登陆主机的IP地址 |
5.Authorized users only.All activities may be monitored and reported
这个应该是安装了某一个监控软件弹出的内容。