在单个主机上使用多个密钥时 SSH 使用错误的密钥

Col*_*lin 5 git macos ssh ssh-keys

我目前正在尝试为单个主机创建多个密钥,但遇到了一个奇怪的问题,我决定使用的第一个 SSH 密钥成为我可以使用的唯一 SSH 密钥。然后我必须重新启动笔记本电脑才能更改 SSH 密钥。

我使用的是配备 Mojave v10.14.6 的 Macbook Pro

我的 SSH 配置如下 -

Host github.com-personal
  Hostname github.com
  UseKeychain yes
  AddKeysToAgent yes
  User git
  IdentityFile ~/.ssh/personal
Host github.com-work
  Hostname github.com
  UseKeychain yes
  AddKeysToAgent yes
  User git
  IdentityFile ~/.ssh/work
Run Code Online (Sandbox Code Playgroud)

由于这些密钥恰好用于github,所以我使用以下命令进行测试。

ssh -T github.com-work
Run Code Online (Sandbox Code Playgroud)

ssh -T github.com-personal
Run Code Online (Sandbox Code Playgroud)

问题是,如果我work先运行命令,响应是 -

Hi <<work account>>! You've successfully authenticated, but GitHub does not provide shell access.
Run Code Online (Sandbox Code Playgroud)

之后,如果我运行上述任一命令,输出都是相同的。

如果我personal先运行该命令,那么输出将引用我的个人帐户,直到我重新启动计算机。

有谁知道这是怎么回事?

Col*_*lin 2

@Torek 指出IdentitiesOnly yes我的 SSH 规则中缺少一行。谢谢您的帮助!