SSH経由でGnuPGからエクスポートされたOpenPGPキーは使用できません。

SSH経由でGnuPGからエクスポートされたOpenPGPキーは使用できません。

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を介して他のシステムに接続することができます。

  1. ssh-agent追加してenable-ssh-supportプロトコルを有効にします。~/.gnupg/gpg-agent.conf
  2. export SSH_AUTH_SOCK=$HOME/.gnupg/S.gpg-agent.ssh;この内容をあなたの~/.profile
  3. ssh-agent起動した場合は終了して再読み込みgpg-agentgpg-connect-agent reloadagent /bye
  4. 公開鍵をエクスポートしてターゲットサーバーに追加します(ssh-add -LSSH公開鍵行には、おなじみのOpenPGP鍵を含める必要があります)。
  5. ssh通常のSSHキーを使用するのと同じように、ターゲットサーバーに

これは、YubiKeyを介してSSHキーを保護するために使用するOpenPGPスマートカードまたはUSBドングルでも機能します。

おすすめ記事