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

Posted

技术标签:

【中文标题】在单个主机上使用多个密钥时 SSH 使用错误的密钥【英文标题】:SSH uses wrong key when using multiple keys on a single host 【发布时间】:2020-04-10 06:55:24 【问题描述】:

我目前正在尝试为单个主机创建多个密钥,但我遇到了一个奇怪的问题,即我决定使用的第一个 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

由于这些key恰好是用于github的,所以我用下面的命令来测试。

ssh -T github.com-work

ssh -T github.com-personal

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

Hi <<work account>>! You've successfully authenticated, but GitHub does not provide shell access.

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

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

有人知道这里发生了什么吗?

【问题讨论】:

这不是 Git 的错。 :-) 尝试将IdentitiesOnly 添加到您的.ssh/config 条目中。确保在您需要的所有 地方执行此操作。见***.com/q/36363325/1256452 @phd 我没有。我已经尝试为这两个 ssh 规则添加它,并且我使用不同帐户登录的能力没有改变。 @torek 圣洁的 moly 成功了!非常感谢! 【参考方案1】:

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

【讨论】:

以上是关于在单个主机上使用多个密钥时 SSH 使用错误的密钥的主要内容,如果未能解决你的问题,请参考以下文章

PhpStorm“rsa 密钥已损坏或版本错误”

SELinux 使用 RSA 密钥阻止 ssh

同一主机设置多个密钥与不同github账号关联,或同一主机同一密钥分别关联github和gitlab

“主机密钥验证失败”时如何建立 ssh 密钥对

Linux密钥登陆

Git - 如何在 Windows 10 上删除 SSH 密钥