我使用PuTTYgen生成了一个OpenSSH私钥(并以OpenSSH格式导出)。

如何在这个现有密钥上设置密码(我知道如何生成带有密码的新密钥)?


当前回答

使用-p选项ssh-keygen。这允许您更改密码,而不是生成一个新的密钥。

按照sigjuice的提示修改密码:

ssh-keygen -p -f ~/.ssh/id_rsa

输入的密码为新密码。(假设您已经添加了公钥~/.ssh/id_rsa。Pub到authorized_keys文件。)用ssh测试:

ssh -i ~/.ssh/id_rsa localhost

您可以有多个具有不同名称的键用于不同的用途。

其他回答

使用-p选项ssh-keygen。这允许您更改密码,而不是生成一个新的密钥。

按照sigjuice的提示修改密码:

ssh-keygen -p -f ~/.ssh/id_rsa

输入的密码为新密码。(假设您已经添加了公钥~/.ssh/id_rsa。Pub到authorized_keys文件。)用ssh测试:

ssh -i ~/.ssh/id_rsa localhost

您可以有多个具有不同名称的键用于不同的用途。

试试下面的命令:

ssh-keygen -p -f keyfile

从ssh-keygen手册页

 -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.

 -f filename
         Specifies the filename of the key file.

例子:

ssh-keygen -p -f ~/.ssh/id_rsa

你也可以使用openssl:

openssl rsa -aes256 -in ~/.ssh/your_key -out ~/.ssh/your_key.enc
mv ~/.ssh/your_key.enc ~/.ssh/your_key
chmod 600 ~/.ssh/your_key

参见:https://security.stackexchange.com/a/59164/194668