如何使用跳板机访问远程服务器

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

跳板机(如果你还不知道跳板机,请看跳板机是什么)应该高度安全并受到监视,特别是当它跨越私有网络和DMZ,服务器在internet上为用户提供服务时。

典型的场景是从公司的内部网络从桌面或笔记本连接到DMZ,该网络具有防火墙的高度安全保护。为了方便地管理DMZ中的服务器,您可以通过跳转主机访问它。

动态跳板机

如果跳板机不确定,每次都要输入用户名,采用下面的两种方式

单个跳板机

通过跳转主机连接到目标服务器的最简单方法是使用命令行中的-J标志。这告诉ssh与跳转主机建立连接,然后从此处建立到目标服务器的TCP转发(确保您在计算机之间进行了无密码SSH登录)。

# host1跳板机
$ ssh -J host1 host2

如果需要指定用户名和端口

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

多个跳板机

可以使用相同的语法跳过多个服务器。

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

静态跳板机

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

### First jumphost. Directly reachable
Host vps1
  HostName vps1.example.org

### Host to jump to via jumphost1.example.org
Host contabo
  HostName contabo.example.org
  ProxyJump contabo

直接通过下面的方式连接远程服务器

$ ssh -J vps1 contabo

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

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

如果命令Proxy Command ssh -q -W%h:%p vps1表示在安静模式(使用-q)和stdio转发(使用-W)模式下运行ssh,请通过中间主机(vps1)重定向连接。

mongodb和mysql的区别
git界面管理工具