我使用 keepassxc (我的密码管理器)来管理我的 ssh 密钥。这意味着密钥存储在数据库中(而不是以传统方式存储在磁盘上)。当我解锁密码数据库时,所有密钥都会添加到代理中。但是,随着 ssh 密钥列表的不断增加,我遇到了 ssh 尝试代理中的所有密钥的问题,这会导致Too many authentication failures
远程主机允许的身份验证尝试次数少于我拥有的 ssh 密钥(并且特别的 ssh 密钥早在列表)。
有没有办法告诉 ssh:“对于该主机,使用带有指纹 xyz 的密钥,从代理获取它”?或者 pubkey xyz,但我不能使用该IdentityFile
选项(和IdentitiesOnly yes
),因为我不想将私钥存储在磁盘上。
答案1
但我无法使用
IdentityFile
选项(和IdentitiesOnly yes
),因为我不想将私钥存储在磁盘上。
你可以。存储对应的民众磁盘上的密钥。使用IdentitiesOnly yes
和IdentityFile
选项并指向正确的公钥。该解决方案在man 5 ssh_config
其描述的地方没有明确解释IdentityFile
,但它应该有效。它被提到在man 1 ssh
其中描述-i
[强调我的]:
-i identity_file
选择从中读取公钥认证的身份(私钥)的文件。ssh-agent(1)
您还可以指定一个公钥文件,以便在本地不存在私钥文件时使用加载的相应私钥。