通过 ssh-agent 管理许多 ssh 密钥

通过 ssh-agent 管理许多 ssh 密钥

我使用 keepassxc (我的密码管理器)来管理我的 ssh 密钥。这意味着密钥存储在数据库中(而不是以传统方式存储在磁盘上)。当我解锁密码数据库时,所有密钥都会添加到代理中。但是,随着 ssh 密钥列表的不断增加,我遇到了 ssh 尝试代理中的所有密钥的问题,这会导致Too many authentication failures远程主机允许的身份验证尝试次数少于我拥有的 ssh 密钥(并且特别的 ssh 密钥早在列表)。

有没有办法告诉 ssh:“对于该主机,使用带有指纹 xyz 的密钥,从代理获取它”?或者 pubkey xyz,但我不能使用该IdentityFile选项(和IdentitiesOnly yes),因为我不想将私钥存储在磁盘上。

答案1

但我无法使用IdentityFile选项(和IdentitiesOnly yes),因为我不想将私钥存储在磁盘上。

你可以。存储对应的民众磁盘上的密钥。使用IdentitiesOnly yesIdentityFile选项并指向正确的公钥。该解决方案在man 5 ssh_config其描述的地方没有明确解释IdentityFile,但它应该有效。它被提到在man 1 ssh其中描述-i[强调我的]:

-i identity_file
选择从中读取公钥认证的身份(私钥)的文件。ssh-agent(1)您还可以指定一个公钥文件,以便在本地不存在私钥文件时使用加载的相应私钥。

相关内容