SSH 配置替换

use*_*065 6 ssh

是否可以在 ssh_config 中编辑替换?我知道我可以匹配通配符,例如:

Host project*
  HostName %h.domain.com
  User project_user
Run Code Online (Sandbox Code Playgroud)

如此使用:

ssh project000
rsync data project123:~
Run Code Online (Sandbox Code Playgroud)

但更复杂的规则可能吗?与主机名别名匹配怎么样(无需显式生成每个可能的组合)?

p    -> project000.domain.com
p1   -> project001.domain.com
p123 -> project123.domain.com
Run Code Online (Sandbox Code Playgroud)

以防万一:我同时使用 bash 和 zsh

Jak*_*uje 2

不,这是不可能的。OpenSSH 没有任何工具来提供这些替换。

您必须提前预先生成这些对ssh_config 才能ssh使用它们。

或者您必须创建 bash 函数来为您进行替换,如下所示:

function ssh() {
  ssh "project${1:1}.domain.com"
}
Run Code Online (Sandbox Code Playgroud)

ssh使用、scprsync传递其他参数来支持所有情况需要更加小心。