动态~/.ssh/config

动态~/.ssh/config

我想让我的~/.ssh/config文件由 shell 脚本(或打印到 STDOUT 的其他任何内容)动态生成。

是否有 UNIX 技巧可以使读取文件导致执行命令并读取它的 STDOUT?

我想要什么:

#!/bin/bash
echo "Hello World"

$ cat myfile
Hello World

答案1

真正的问题是:为什么需要动态配置(以及如何避免动态生成配置)。

是否有 UNIX 技巧可以使读取文件导致执行命令并读取它的 STDOUT?

Bash 有一个功能可以做到这一点,它被命名为“进程替换”:

ssh -F <( echo "Host *"; echo " User dummy" ) ssh.example.com

很遗憾,它不能与 openssh 的 ssh 一起使用,因为它因错误而死亡:

Can't open user config file /dev/fd/63: No such file or directory

另外,有些人似乎使用复杂的方案来使用 FIFO 文件,例如多个 SSH 客户端配置文件,但最终他们使用别名,这可以通过以下方式简化:

alias ssh = '~/bin/gen_ssh_config.sh > /tmp/XX; ssh -F /tmp/XX'

相关内容