Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何向未使用密码生成的OpenSSH私钥添加密码?_Ssh - Fatal编程技术网

如何向未使用密码生成的OpenSSH私钥添加密码?

如何向未使用密码生成的OpenSSH私钥添加密码?,ssh,Ssh,我使用puttygen生成了一个OpenSSH私钥(并以OpenSSH格式导出)。如何在现有密钥上输入密码(我知道如何使用密码生成新密钥)?尝试命令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 f

我使用puttygen生成了一个OpenSSH私钥(并以OpenSSH格式导出)。如何在现有密钥上输入密码(我知道如何使用密码生成新密钥)?

尝试命令
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

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

更改密码,如图所示:

ssh-keygen -p -f ~/.ssh/id_rsa
所需的密码将是新密码。(假设您已将公钥
~/.ssh/id_rsa.pub
添加到授权的_密钥文件中。)使用ssh进行测试:

ssh -i ~/.ssh/id_rsa localhost

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

您也可以使用
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

请参阅:

如果您看到此评论,请将其中一个答案标记为已接受,或者写一条评论,说明他们遗漏了什么。谢谢Add与change或remove相同:,可能与change相同:如果您在
id_ed25519
密钥上获得了
Bad passphrase
,但密码是正确的,那么您可能正在使用低级
ssh-keygen
来管理它。对于那些想知道-f是什么的人来说,它指定输入文件。//,@sigcuise,请您发布一个示例,比如
$ssh-keygen-p-f/Users/sigjuice/.ssh/id\u rsa
?这可能会帮助那些不知道如何区分公钥和私钥的人,并帮助他们更快地了解情况。出于某种原因,在MacOS 10.14上,这不会使用
Proc Type:4,ENCRYPTED
头格式化文件,这与某些检查密码短语的应用程序不兼容。在尝试了几种方法之后,最简单的解决方法就是在运行Ubuntu的Docker容器中执行同样的操作,然后将密钥复制回Mac。我仍然可以在不输入任何密码的情况下以明文形式读取ssh私钥,所以我想上面的命令是不够的!?(我不希望黑客能够在不知道额外密码的情况下读取我的私钥)/,请举例说明,以及如何检查选项是否有效,@BillThor?我不明白。密码短语已设置,当我再次尝试更改它时,我会看到。但当我尝试登录到远程服务器时,它不会要求输入这个密码,为什么?没关系。它会在每个会话中询问一次:)我不知道。这是否意味着您必须注销并再次登录?关闭终端窗口并重新打开它对我不起作用。您可以键入
ssh add-D
删除缓存的标识。然后,再次尝试连接,它将询问您的密码。使用
ssh add-l
查看缓存身份的列表。我想我将采用ssh-keygen方法;)感谢您提供openssl替代方案来完成此任务。