我想用密码保护的pem文件通过SSH连接到我的EC2实例。我如何用密码保护pem文件?我过去做过这个,但不记得我是怎么做到的。我拿了一个由AWS生成的pem文件并在其上运行了一些命令,它生成了如下所示的内容:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,<BlahBlahBlah>
<encrypted stuff is here>
-----END RSA PRIVATE KEY-----
然后当我进入框中时,我正在指定我的密码保护的pem文件,它要求我在解密和sshing之前输入密码。
我发现了这个:https://martin.kleppmann.com/2013/05/24/improving-security-of-ssh-private-keys.html
告诉我使用此命令
ssh-keygen -t rsa -N 'super secret passphrase' -f test_rsa_key
但是生成的加密文件(我正在寻找正确的标题)似乎不起作用。我得到了“Permission denied(publickey)”。当我尝试使用加密的pem文件ssh时。我能够通过未加密的pem文件SSH到框中。
答案 0 :(得分:8)
这是因为您使用的命令会生成新的密钥对,而不是保护您现有的私钥。
尝试使用-p
ssh-keygen
选项
ssh-keygen -p -f my_private_key
它会提示您输入密码并保护您的私钥。
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.
现在,如果您在my_private_key
中使用ssh
,则会提示输入密码并且会成功。
-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 :(得分:0)
您可以安装和使用puttygen:
sudo apt install putty
要生成受保护的密钥,请执行以下操作:
puttygen KEY_PAIR_PRIVATE.pem -O private-openssh -o KEY_PAIR_PRIVATE.key -P
选项-P是将新密码设置为私钥。
PS:您可能需要设置使用密钥的权限,如下所示:
sudo chmod 755 KEY_PAIR_PRIVATE.key
最后,您可以安全地访问aws实例:
ssh -i KEY_PAIR_PRIVATE.key ubuntu@IP_EC2_INSTANCE_OR_HOSTNAME