パスワードで保護された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で接続できます。
これは、使用しているコマンドが既存の秘密鍵を保護するのではなく、新しい鍵ペアを生成するためです。
-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.
ssh
でmy_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.
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