如何更改我的私钥密码?


283

我有一个现有的公钥/私钥对。私钥受密码保护,并且加密可以是RSA或DSA。这些密钥是您使用生成的密钥ssh-keygen,通常存储在之下~/.ssh

我想更改私钥的密码。在标准的Unix shell上,我该如何处理?

另外,如何简单地删除密码?只是将其更改为空?

Answers:


371

要更改默认DSA密钥上的密码,请执行以下操作:

$ ssh-keygen -p -f ~/.ssh/id_dsa

然后在提示时提供您的新旧密码(两次)。(~/.ssh/id_rsa如果您具有RSA密钥,则使用。)

更多详细信息,来自man ssh-keygen

[...]
SYNOPSIS
    ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment]
               [-f output_keyfile]
    ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
[...]
     -f filename
             Specifies the filename of the key file.
[...]
     -N new_passphrase
             Provides the new passphrase.

     -P passphrase
             Provides the (old) passphrase.

     -p      Requests changing the passphrase of a private key file instead of
             creating a new private key.  The program will prompt for the file
             containing the private key, for the old passphrase, and twice for
             the new passphrase.
[...]

1
这是从Gentoo Linux上的net-misc / openssh-5.2_p1-r2附带的手册页中获得的。
Mike Mazur

12
另外,为了将来变得懒惰,我将顺序颠倒了:先快速回答,然后手册页。
2009年

2
我认为答案很好,因为它既显示了可以更改密码的位置,又显示了寻找答案的位置。我已经帮助了很多人设置ssh密钥,对于他们来说,实际上记住他们所使用的工具并不总是那么容易。此外,在网上寻找答案是许多人的第一选择……
sastorsl,2015年

5
如果您的计算机使用OpenSSH> = 6.5,则应该使用该-o选项来启用新的私钥格式(默认为kDF加密)。对于较旧的OpenSSH版本,请使用PKCS#8获得更安全的私钥文件
Quinn Comendant 2015年

2
@FranciscoLuz我的答案中的命令特定于DSA密钥。如果您具有RSA密钥,那么您的命令是正确的。我在答案中添加了内容说明来解决此问题。
Mike Mazur 2015年

-9

删除您的SSH公钥/私钥:

rm ~/.ssh/id_rsa*

重新创建密钥对,选择一个新密码:

ssh-keygen -t rsa -f ~/.ssh/id_rsa

将新创建的私钥添加到OS X钥匙串中以存储密码并管理自动解锁:

ssh-add -K ~/.ssh/id_rsa

将公钥复制到OS X剪贴板,以添加到GitHub等Web服务。

cat ~/.ssh/id_rsa.pub | pbcopy

将您新创建的公钥添加到~/.ssh/authorized_keys远程服务器的文件中。确保确保对远程~/.ssh文件夹(700)和~/.ssh/authorized_keys(600)都具有正确的权限。您可能想研究使用ssh-copy-id来简化此过程。


3
张贴者询问如何更改密钥上的密码短语,而不是丢弃它并生成新密码。他们从未提及OS X.
musicinmybrain

2
如果不是针对以下三个问题,我会赞成这个答案:1.删除旧键不是一个好的开始,因为在更新时需要这些键authorized_keys2.您没有提到为什么创建新密钥比更改旧密钥更好。3.您对操作系统进行假设,但该问题不支持该假设。
卡巴斯德(Kasperd),
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.