在 ~/.ssh/config 中以特定用户身份进行 ssh 时指定特定身份文件

在 ~/.ssh/config 中以特定用户身份进行 ssh 时指定特定身份文件

我想根据我通过 ssh 连接到服务器的用户指定一个特定的身份文件。

例如,当以 user1 身份从主机 1 ssh 到主机 2 时

[user1@host1 ~]$ ssh user1@host2

我想使用某个身份文件。但是,当我以用户 1 的身份从主机 1 到主机 2 的用户 2 时,我想使用不同的身份文件

[user1@host1 ~]$ ssh user2@host2

现在,我可以通过在命令中指定身份文件来完成此操作,

[user1@host1 ~]$ ssh -i ~/.ssh/id_user1 user1@host2

[user1@host1 ~]$ ssh -i ~/.ssh/id_user2 user2@host2

但我很乐意在我的 ~/.ssh/config 文件中执行此操作。我尝试了以下方法,但似乎不起作用

Host user2@*
    IdentityFile ~/.ssh/id_user2

Host user1@*
    IdentityFile ~/.ssh/id_user1

感谢任何和所有的帮助。如果必须在其他地方进行配置,那也可以。我只是想避免在命令行上指定它。真的很想弄清楚这一点,因为这将是解决我的问题的一个很酷的解决方案!

答案1

您应该能够使用Match指令来做到这一点,例如

Host host2
  HostName host2.some.dom.ain
  Match user user1  
    IdentityFile ~/.ssh/id_user1  
  Match user user2
    Identityfile ~/.ssh/id_user2

相关内容