具有多个主机的透明 ssh 代理

具有多个主机的透明 ssh 代理

是否可以设置 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,则表示成功,并且您可以通过直通进行连接。

您现在所需要的只是一个脚本,该脚本尝试连接每个服务器并打印结果$?

相关内容