有没有办法在 ~/.ssh/config 中使用正则表达式

Viv*_*oel 7 ssh ssh-tunneling

我有两套服务器。试生产。所有服务器都有内部IP。目前我使用别名登录:

Host pro-10
Hostname 192.168.1.10
ProxyCommand ssh production-server nc %h %p
Run Code Online (Sandbox Code Playgroud)

对于每台服务器,我都需要重复此规则。我正在寻找这样做的常规表达方式?

Host pro-*
Hostname 192.168.1.$1
ProxyCommand ssh production-server nc %h %p
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

Ulr*_*gel 15

不,ssh 不支持正则表达式,ssh_config (1)并且您提供的示例不是正则表达式。ssh_config (1)支持PATTERNS,即您可以为您的 IP 定义一个模式,即:

Host 192.168.1.*
  ProxyCommand ssh production-server nc %h %p
Run Code Online (Sandbox Code Playgroud)

并且您应该能够转发所有内部 IP。另一种解决方案是/etc/hosts为特定 IP添加条目,即:

192.168.1.10 pro10
192.168.1.11 pro11
Run Code Online (Sandbox Code Playgroud)

并在您的~/.ssh/config文件中创建一个条目:

Host pro1?
  ProxyCommand ssh production-server nc %h %p
Run Code Online (Sandbox Code Playgroud)