使用 ssh-keygen 更改 ssh 密码会更改 ssh 密钥?

Posted

技术标签:

【中文标题】使用 ssh-keygen 更改 ssh 密码会更改 ssh 密钥?【英文标题】:Changing ssh passphrase with ssh-keygen makes a change of the ssh key? 【发布时间】:2018-09-08 01:18:20 【问题描述】:

我错误地设置了我的 ssh 密钥的密码。

但是每次使用密钥时都要输入密码是很烦人的。

我想删除我的密钥的密码:

$ ssh-keygen -p -f <my/key/file>

我担心,但是,密钥会被改变。

这项工作似乎太危险了,无法测试,因为我以多种方式使用密钥。

man page 说,命令不会改变我认为的密钥,但不确定:

-p 请求更改私钥文件的密码,而不是创建新的私钥。该计划将 提示输入包含私钥的文件,输入旧密码,两次输入新密码。

【问题讨论】:

【参考方案1】:

确实,密码只是对私钥文件的本地保护。从服务器的角度来看,密钥保持不变。

尝试对你来说没有危险。只需在转换前备份您的加密密钥即可。


虽然正确的解决方案是使用authentication agent(如OpenSSH ssh-agent)。使用代理时,您只需在将密钥加载到代理时输入一次密码。


如果您想要/需要未加密的密钥来实现某些自动化,正确的解决方案是拥有两个密钥。一种加密用于交互使用,另一种未加密用于无人值守使用。因此,如果您的未加密密钥被泄露,您可以取消它而无需更换您的加密密钥。

【讨论】:

【参考方案2】:

另一种解决方案是使用 ssh-agent 将您的密码重置为新密码,并将新密码保留为空字符串

    通过终端转到您的.ssh 文件夹 ssh-keygen -p 输入您的当前密码 跟随交互式屏幕,只需按两次 Enter 键

【讨论】:

这是 OP 想要尝试的。 OP 只是在询问是否可以这样做。

以上是关于使用 ssh-keygen 更改 ssh 密码会更改 ssh 密钥?的主要内容,如果未能解决你的问题,请参考以下文章

通过终端使用ssh-keygen免密码登录远程服务器

实现SSH无密码登录:使用ssh-keygen和ssh-copy-id

自动在ssh上输入密码:: dont想做ssh-keygen :: spawn不能正常工作

使用 ssh-keygen 和 ssh-copy-id 实现SSH无密码登录功能

如何回答 Python 的 ssh-keygen 密码提示?

使用 ssh-keygen / OpenSSL 生成 SSH 密钥