是否可以在 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
不,这是不可能的。OpenSSH 没有任何工具来提供这些替换。
您必须提前预先生成这些对ssh_config 才能ssh使用它们。
或者您必须创建 bash 函数来为您进行替换,如下所示:
function ssh() {
ssh "project${1:1}.domain.com"
}
Run Code Online (Sandbox Code Playgroud)
ssh使用、scp和rsync传递其他参数来支持所有情况需要更加小心。