是否可以让 ssh 选择一个随机 IP 地址(使用通配符)进行连接?我们有 30 台计算机,其 IP 地址来自“asd1.asd.asd.asd.com”到“asd30.asd.asd.asd.com”,我想使用别名 xxxx 连接到其中一个(随机选择)。是否有一种简单的方法可以使用 ~/.ssh/config 文件来执行此操作?
我尝试使用这个通配符:
Host xxxx
Hostname asd[0-30].asd.asd.asd.com
User my_username
但这不起作用。有任何想法吗?有可能吗?
答案1
如果你真的有必要,你可以这样做:
Host xxxx
User my_username
ProxyCommand nc asd$((1+$((RANDOM %% 30)))).asd.asd.asd.com 22
这假设您正在使用 bash shell - 否则您可以将代理命令作为 bash 调用的参数,例如
ProxyCommand /bin/bash -c "exec nc asd$((1+$((RANDOM %% 30)))).asd.asd.asd.com 22"
答案2
我不认为 ssh 本身可以做到这一点。
如果您将所有 IP 号码分配给您控制的某个区域中的一个主机名,则可以使用 dns 来完成此操作。
另一种选择是编写一个简单的包装器(例如在 Python 中),使用随机选择的地址调用 ssh。