1年前、私はGnuPGを使ってPGPキーを生成しました。それ以来、実際に周りに行ったことがないので、GPGの内容について非常にあいまいです(原則として、非対称鍵暗号化を理解していますが)。私は昨日誤って削除するまで、このキーを使用してSSHログインを認証しました。だから今日は再生成を始めました。
実行しましたが、gpg --export-secret-key -a "Ryan Lue" > ~/.ssh/id_rsa
パスワードの入力を求められます。パスワードを入力するとid_rsa
ファイルが出ました。 SSH経由でサーバーに接続しようとすると、次の警告が表示されます。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
だから私は行動しましたchmod 600 ~/.ssh/id_rsa
。もう一度やり直すと、パスワードの入力を求められます(実際にMacを使用しているため、キーチェーンでパスワードの入力を求められます)。エクスポートするのと同じパスワードを入力しましたが、コマンドラインに次のエラーが表示され、毎回失敗します。
Saving password to keychain failed
また、:を使用してキーを追加しようとしましたが、ssh-agent
実際にはコマンドラインでパスワードの入力を求められます。
Enter passphrase for /Users/rlue/.ssh/id_rsa:
どちらにしてもパスワードを拒否します。このプロンプトで入力したパスワードがエクスポートされたときに入力したパスワードと同じであると100%確信しています。キーを12回ほど正常にエクスポートしましたが、使用中に認証に40回程度失敗しました。
私は何を見逃していますか?
ベストアンサー1
OpenPGP(GnuPGで実装)とSSHは同じ暗号原則を使用しますが、共通のキー形式を共有しません。
ただし、GnuPGはssh-agent
プロトコルを実装しているため、GnuPGを介してOpenPGPキーを使用してSSHを介して他のシステムに接続することができます。
ssh-agent
追加してenable-ssh-support
プロトコルを有効にします。~/.gnupg/gpg-agent.conf
export SSH_AUTH_SOCK=$HOME/.gnupg/S.gpg-agent.ssh
;この内容をあなたの~/.profile
ssh-agent
起動した場合は終了して再読み込みgpg-agent
(gpg-connect-agent reloadagent /bye
)- 公開鍵をエクスポートしてターゲットサーバーに追加します(
ssh-add -L
SSH公開鍵行には、おなじみのOpenPGP鍵を含める必要があります)。 ssh
通常のSSHキーを使用するのと同じように、ターゲットサーバーに
これは、YubiKeyを介してSSHキーを保護するために使用するOpenPGPスマートカードまたはUSBドングルでも機能します。