logo

鱼肚的博客

Don't Repeat Yourself

有时因为一些安全方面的原因,需要使用跳板机才能访问到指定的ssh服务器。直接访问的时候是不通的。

这种情况下,就需要先ssh登录到跳板机,再从跳板机上ssh到真正的主机。

通过设置 ~/.ssh/config 文件,可以简化这个过程。

设置跳板机的ssh config

1Host jumper
2    HostName 192.168.1.1 # 换成真实地址
3    User username # 换成真实用户名

此时在控制台中输入 ssh jumper,就会发起到跳板机的验证。输入密码后即可登录到跳板机。

如果需要避免每次输入密码,在跳板机允许的情况下,可以为自己的账户添加authorized_keys。

1ssh-copy-id jumper

也可以选择将密码写入 ssh config中,但是不推荐。

设置目标主机的ssh config

1Host jumper
2    HostName 192.168.1.1 # 换成真实地址
3    User username # 换成真实用户名
4    
5Host realhost
6    HostName 10.2.1.1 # 换成真实地址
7    User username # 换成真实用户名
8    ProxyCommand ssh -q -W %h:%p jumper

这里的关键代码就是 ProxyCommand那一行,设置了通过jumper主机作为跳转服务器。

这样配置之后,就可以直接 ssh realhost来登录了。

同样,为了简化验证流程,可使用ssh-copy-id realhost的方式添加authorized_keys到realhost主机。