我正在通过 SSH 连接到多个设置相同的数据中心。每个数据中心都有一个 jumpbox,在其后面可以访问各种数据库服务器等。
当所有这些服务器的条目几乎相同时,除了 jumpbox IP 之外,手动为所有这些服务器指定条目是一件痛苦的事情。所以我想设置我的.ssh/config
文件,以便我可以输入datacenter_name-server_behind_jumpbox
并让 SSHdatacenter_name
从主机的前端抓取(以便我可以在ProxyCommand
.
例如,如果我想访问 datacenter1 中的 Maria 服务器,我会为 jumpbox 创建一个名为 的 SSH 条目datacenter1
。然后对于它背后的 Maria 服务器,我会设置如下:
Host %dc%-maria
Hostname maria
User jeff
ProxyCommand ssh -q -W %h:%p %dc
Run Code Online (Sandbox Code Playgroud)
这样我只需要为位于 jumpbox 后面的每种类型的服务器设置一个条目,它就会自动知道要命中哪个数据中心 jumpbox。
这样的事情可能吗?
小智 5
我使用不同的代理主机向主机名添加假后缀
Host *.dc1
ProxyCommand ssh -q %r@dc1 -W %h:%p
Host *.dc2
ProxyCommand ssh -q %r@dc2 -W %h:%p
Run Code Online (Sandbox Code Playgroud)
然后执行 ssh server1.dc1 之类的操作,它将使用代理主机。
您可以为自定义设置添加主机条目,如下所示:
Host server1.*
User jeff
Run Code Online (Sandbox Code Playgroud)
您可以将脚本作为自定义 ProxyCommand 运行,并在真正的ProxyCommand之前完成工作:
.ssh/config
:
Host *-maria
Hostname maria
User jeff
ProxyCommand /bin/datacenter_ssh.sh %h %p
Run Code Online (Sandbox Code Playgroud)
datacenter_ssh.sh
:
#!/bin/bash
COMBINED=$1
DATACENTER=$(echo $COMBINED | cut -d'-' -f1)
SERVER=$(echo $COMBINED | cut -d'-' -f2)
PORT=$2
ssh -q -W $SERVER:$PORT $DATACENTER
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5061 次 |
最近记录: |