我有一个现有的公钥/私钥对。私钥受密码保护,加密可以是 RSA 或 DSA。这些密钥是您用 生成的密钥,ssh-keygen
通常存储在 下~/.ssh
。
我想更改私钥的密码。在标准 Unix shell 上我该怎么做?
另外,我该如何删除密码?只需将其更改为空即可?
答案1
要更改默认密钥的密码:
$ ssh-keygen -p
如果需要指定密钥,请传递-f
选项:
$ 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.
[...]
答案2
如果你没有ssh-keygen
安装,也可以openssl
直接使用
key="/path/to/your.key"
algo="-des3" # or -aes256 or ...
openssl rsa $algo -in "$key" -out "$key.new"
# and replace old key with new one
mv "$key.new" "$key"
答案3
删除您的 SSH 公钥/私钥:
rm ~/.ssh/id_rsa*
重新创建密钥对,选择一个新密码:
ssh-keygen -t rsa -f ~/.ssh/id_rsa
将新创建的私钥添加到你的 OS X 钥匙串中,以存储密码并管理自动解锁:
ssh-add -K ~/.ssh/id_rsa
将公钥复制到 OS X 剪贴板,以便添加到 GitHub 等网络服务。
cat ~/.ssh/id_rsa.pub | pbcopy
将您新创建的公钥添加到~/.ssh/authorized_keys
远程服务器的文件中。务必确保远程~/.ssh
文件夹 (700) 和~/.ssh/authorized_keys
(600) 的权限正确。您可能需要研究使用ssh-copy-id
以简化此过程。