如何在 ~/.ssh/config 中定义备用后备?

如何在 ~/.ssh/config 中定义备用后备?

我有许多条目~/.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

相关内容