web-dev-qa-db-ja.com

PEMファイルをパスワードで保護する

パスワードで保護されたpemファイルを使用してEC2インスタンスにSSH接続したいのですが。 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-----

次に、ボックスにSSHで接続するときに、パスワードで保護されたpemファイルを指定し、暗号化を解除してsshでログインする前にパスワードを入力するように求めます。

私はこれを見つけました: 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で接続できます。

9
LampShade

これは、使用しているコマンドが既存の秘密鍵を保護するのではなく、新しい鍵ペアを生成するためです。

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

sshmy_private_keyを使用すると、パスフレーズの入力を求められ、成功します。

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

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
0
cdvillagra