为什么 ssh-add 会添加重复的身份密钥?

为什么 ssh-add 会添加重复的身份密钥?

我使用 创建了私钥/公钥 SSH 密钥对ssh-keygen。我使用它来向远程服务器进行身份验证。但是,我发现当我登录时,ssh-add -l已经列出了我的身份密钥,尽管我还没有添加它!

如果我使用该命令,ssh-add它会提示我输入密码并加载我的身份密钥。如果我使用 列出我的密钥ssh-add -l,它现在会显示两个身份密钥!它们显然是相同的,因为它们具有相同的指纹,但它们的描述不同(自动加载的是“user@host (RSA)”,使用 ssh-add 添加的是“/home/user/.ssh/id_rsa (RSA)”)。

那么,为什么我的身份密钥似乎已加载,而我却没有采取任何操作,为什么 ssh-add 会再次添加相同的密钥?显然,一定有某种东西自动执行了此操作,但它是什么?我该如何阻止它?

答案1

使用ssh-keygen创建密钥~.ssh/id_rsa~.ssh/id_dsa。这些是 ssh 密钥的默认文件位置,并会自动读取。ssh-add当您需要添加额外的密钥时使用。

如果您不想要默认密钥,只需将密钥命名为 以外的其他名称即可id_rsa。这可以在生成时完成ssh-keygen -f keyname,也可以通过重命名文件来完成。

答案2

Ubuntu钥匙链可能正在执行您的身份的初始加载。更可能的是,您的 ssh-agent 本身正在获取所需的身份,以使登录用户能够使用无密码 ssh(以及 scp、rsync、sftp 等)。Ubuntu 使用您的桌面登录凭据允许 ssh-agent 从 ~/.ssh 中的几个默认位置中的任何一个加载身份。就像登录到远程服务器一样,登录到您的本地桌面会启动 ssh-agent 守护程序。

如果您喜欢频繁输入密码,请尝试pgrep ssh-agent将其关闭。但是,始终要求输入密码不如信任代理安全——记住密码、保持密码安全、肩窥、键盘记录器、网络摄像头窥视、历史文件、在错误的提示下输入密码并向错误的服务器/守护程序透露密码,等等。

相关内容