0x00多层跳板机正常登录方式

好多环境都有一台统一登陆跳板机,我们须要先登陆跳板机,之后再登陆自己的目标机器.登陆流程如下

ssh root@跳板机ip 
ssh root@自己的目标机器ip

例如下边的登陆形式

每次这样登陆会很冗长,openssh有一个ProxyCommand的配置可以解决这个问题.

0x01使用ProxyCommand来透过跳板机

ProxyCommand是openssh的特点,假如使用putty,xshell,这么是没有这个功能的.在windows下边linux论坛,推荐使用mobaxterm,其基于cgywin,上面移植了一个完整版本的openssh实现,在linux和macos上面直接就是openssh了.

我们简单看下ProxyCommand文档说明

manssh_config

ProxyCommand拿来指定联接到服务器的命令.其可以是任何的命令,只要能从其标准输入读入数据,之后写出到标准输出即可.这条命令须要联接到sshd服务器上.

也就是说,在不使用ProxyCommand的情况下linux跳板机,ssh会自己完善到目标机器22端口的联接.使用了ProxyCommand,这么使用指定命令来构建到目标机的联接,ssh直接使用早已构建的联接.在文档上面使用了nc命令来构建联接.

nc是外部命令,可能有些机器上没有安装.实际上,ssh命令的-W选项可以完成这个事情

manssh

-Whost:port将client过来的标准输入和输出forward到host和port指定的地方.可以看见,这个选项直接就可以搭配上ProxyCommand的需求.

有了这种打算知识,我们就可以编撰ssh的配置文件了.须要将下边的内容添加到自己的~/.ssh/config文件中(~是自己的家命令,假如是root用户就是/root,倘若是非root用户就是/home/用户名,这个文件假如不存在就自己新建下来.)

Host tiaoban
 Hostname 跳板机的ip
 Port 跳板机的端口(如果是非22的需要填写)
 User root(如果非root,换成跳板机的用户)
Host mubiaoji
 Hostname 目标机的IP
 Port 跳板机的端口(如果是非22的需要填写)
 User root(如果非root,换成跳板机的用户)
 ProxyCommand ssh -q -x -W %h:%p tiaoban

这里的%h表示要联接的目标机linux学习论坛,也就是Hostname指定的ip或则主机名,%p表示要联接到目标机的端口.这里可以直接写死固定值,并且使用%h和%p可以保证在Hostname和Port变化的情况下ProxyCommand这行不用跟随变化.

linux跳板机_跳板机登录服务器_跳板机英文

之后我们直接sshmubiaoji,可以看见直接就联接上了.

linux跳板机_跳板机英文_跳板机登录服务器

假如使用的工具没有密码记住的功能(我使用的mobaxterm有手动记住密码的功能linux跳板机,linux自带的没有记住密码的功能,mac的Iterm2可以找一下相应的配置),这么这里会让输入两次密码,第一次是跳板机的密码,第二次是目标机的密码,虽然输入密码的时侯会提示要输入密码的机器的IP,自己也可以判别.

此时整个链路是如下的:

linux跳板机_跳板机英文_跳板机登录服务器

本机会ssh到跳板机,构建一条联接,之后-W命令会从跳板机发起联接到目标机.跳板机直接将本机到目标机和目标机到本机的数据透传,最后的疗效就相当于从本机直接到目标机了.

0xff总结

使用ssh的ProxyCommand,我们可以便捷的透过跳板机步入到环境上面的机器.实际上,我们可以不止跳过一层跳板机,通过不断的累加跳板机和ProxyCommand,理论上我们可以透过任意层数的跳板机.如下就是两层跳板机的配置.

Host tiaoban1
 Hostname 跳板机的ip
 Port 跳板机的端口(如果是非22的需要填写)
 User root(如果非root,换成跳板机的用户)
Host tiaoban2
 Hostname 跳板机的ip
 Port 跳板机的端口(如果是非22的需要填写)
 User root(如果非root,换成跳板机的用户)
 ProxyCommand ssh -q -x -W %h:%p tiaoban1
Host mubiaoji
 Hostname 目标机的IP
 Port 跳板机的端口(如果是非22的需要填写)
 User root(如果非root,换成跳板机的用户)
 ProxyCommand ssh -q -x -W %h:%p tiaoban2

当我们可以登入到环境以后,我们就可以搭配上-L(本地转发),-R(远程转发),-D(动态转发)便捷从环境上面进出以及登陆环境上面的各类WEB界面了.

本文原创地址:https://www.linuxprobe.com/xdctbjzcdlff.html编辑:刘遄,审核员:暂无