我有许多条目~/.ssh/config
:
Host github.com
Hostname github.com
User git
IdentityFile ~/.ssh/github
Host mydomain.com
User name
IdentityFile ~/.ssh/id_rsa
Host [email protected]
Hostname work.com
User full.name
IdentityFile ~/.ssh/work_rsa
如果没有匹配,则默认后备为id_rsa
.但我想要一个不同的后备。以下尝试失败,因为它捕获了所有内容,覆盖了之前的所有设置。
Host '*'
IdentityFile ~/.ssh/fallback
“以上都不是”的正确表达方式是什么?
答案1
将后备移至底部。SSH 从第一个匹配的Host
块中获取参数值。
由于Host *
将匹配所有内容,因此您希望将其放在最后。否则,SSH 将始终选择其IdentityFile
.
Host github.com
Hostname github.com
User git
IdentityFile ~/.ssh/github
Host mydomain.com
User name
IdentityFile ~/.ssh/id_rsa
Host [email protected]
Hostname work.com
User full.name
IdentityFile ~/.ssh/work_rsa
Host *
IdentityFile ~/.ssh/fallback