SSH 配置:如何停止重复设置/将其放在通配符主机中?

SSH 配置:如何停止重复设置/将其放在通配符主机中?

我有一个重复设置remoteCommand,如果可能的话,我想将其添加到通配符主机中。

这是一个截断的片段:

host container-server

host container-1 
  remoteCommand docker exec -it containerHostname-01 bash

host container-2
  remoteCommand docker exec -it containerHostname-02 bash

host container-2
  remoteCommand docker exec -it containerHostname-02 bash

host * 
  user <user>
  requestTTY yes
  identityFile ~/.ssh/key
  strictHostkeyChecking no
  userKnownHostsFile /dev/null
  preferredAuthentications publicKey
  hostname <hostname of container server>

由于containerHostname-0<int>所有值都相差一个整数,我假设这是不可能完成的,而且我已经研究了好几天,但什么也没回来,所以有可能吗?

答案1

正如您所猜测的,该ssh配置不允许使用变量或循环。

因此,据我所知,您不能使用通配符为不同编号的主机生成不同的命令。

相反,您可以使用 shell 生成一个配置文件,此处bash选择:

for i in {1..10}; do
    printf '%s\n' "host container-${i}\n\tremoteCommand docker exec -it containerHostname-${i} bash" >> file
done

相关内容