使用ProxyCommand代理跳板机登录

有时候我们要登录一台云服务器需要先登录一台A机器后然后在通过A机器跳转到目标机器,这么做的好处就是讲登录权限的范围进行控制,让登录的服务器处于可控范围内不至于被任何非信任用户访问。

那么问题来了,我得先本地 ssh 到A机器,然后在A 机器ssh 到B机器吗?这也太麻烦了。

其实,ssh 可以通过本地的config 文件进行配置,我们可以编辑 ~/.ssh/config

1
2
3
4
5
6

Host *
PasswordAuthentication no
ChallengeResponseAuthentication no
HashKnownHosts yes
ProxyCommand ssh [email protected] -p 65422 -W %h:%p

上面的配置是所有的链接都会走跳板机,如果不希望这么做,可以指定具体的服务器进行配置

1
2
3
4
5
6
Host aliyun
HostName 112.111.27.197
User fwj
IdentityFile /Users/fwj/.ssh/id_rsa
Port 65422
ProxyCommand ssh [email protected] -p 65422 -W %h:%p