是否可以设置 SSH,以便对于任何尝试的连接,它首先尝试直接连接,如果失败,则尝试通过另一台主机连接。如果失败,它会尝试通过另一台主机连接,依此类推。我有一份此类主机的列表。
例如
ssh 进入“database.companyB.com”
首先会直接尝试,但会失败(没有密钥签名)
然后它会尝试通过 companyA.com 进行访问,但也会失败
然后它将尝试通过 companyB.com 进行访问,并且会成功。
我知道透明转发可以逐个主机地进行,但是可以这样做吗?
答案1
首先,我们可以设置代理连接。
假设你想访问 A.dm.com,但需要先通过 B.dm.com。我们可以用以下命令编辑 .ssh/config 文件:
Host A-s1
Hostname A.dm.com
Compression yes
User mvy
ProxyCommand ssh B.dm.com nc %h %p 2> /dev/null
这使我们能够
ssh A-s1
它会要求输入密码 B,然后是密码 A,然后我们就可以进入了。这样你就可以执行以下操作:
ssh A-s1 exit
如果$?
为 0,则表示成功,并且您可以通过直通进行连接。
您现在所需要的只是一个脚本,该脚本尝试连接每个服务器并打印结果$?