在旧的shell会话中,ssh密钥的数量ssh-agent
往往足够大,以至于无法通过服务器进行身份验证,这仅仅是因为客户端只是以FIFO的方式向其抛出密钥。即使在IdentityFile
中为相关主机指定了指令,似乎也可以执行此操作~/.ssh/config
。
为了解决这个问题,我将IdentitiesOnly
指令添加到了该文件中。但是,现在,当我尝试连接到服务器时,系统提示我输入ssh密钥密码。尽管事实上钥匙在ssh-agent
。当我IdentitiesOnly
从配置文件中删除时,不显示任何提示,并且授予访问权限。
因此,我的问题是,如何确保将正确的密钥(没有其他密钥)提供给给定的服务器,并避免提示输入该密钥的密码?
我在这篇博客文章中遇到了解决方案。
本质上,该想法是在声明中引用公共密钥,而不是私有密钥IdentityFile
。因此,主机的最终配置foo
将如下所示:
Host foo
Hostname foo.org
User admin
IdentityFile ~/.ssh/foo.pub
IdentitiesOnly yes
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句