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

Tyl*_*r R 6 linux ssh command ssh-config

我想根据我对服务器进行 ssh 连接的用户指定一个特定的身份文件。

例如,当 ssh 作为 user1 从主机 1 到主机 2 作为 user1

[user1@host1 ~]$ ssh user1@host2
Run Code Online (Sandbox Code Playgroud)

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

[user1@host1 ~]$ ssh user2@host2
Run Code Online (Sandbox Code Playgroud)

现在,我可以通过在命令中指定身份文件来做到这一点,

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

[user1@host1 ~]$ ssh -i ~/.ssh/id_user2 user2@host2
Run Code Online (Sandbox Code Playgroud)

但我很想在我的 ~/.ssh/config 文件中做到这一点。我尝试了以下方法,但似乎不起作用

Host user2@*
    IdentityFile ~/.ssh/id_user2

Host user1@*
    IdentityFile ~/.ssh/id_user1
Run Code Online (Sandbox Code Playgroud)

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

ste*_*ver 8

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

Host host2
  HostName host2.some.dom.ain
  Match user user1  
    IdentityFile ~/.ssh/id_user1  
  Match user user2
    Identityfile ~/.ssh/id_user2
Run Code Online (Sandbox Code Playgroud)