web-dev-qa-db-ja.com

gpg-agentおよびSSH:キーなし

このチュートリアル を使用して、GPGサブキーを通じてSSH認証を有効にしようとしています。ただし、 このブログ (Xprofileを編集する代わりに)から.initスクリプトを借りて使用しました。

ただし、非常に奇妙なエラーメッセージが表示されます。


┌─[12:53:49]─[user@pc]
└──> ~ $ ssh-add -l
gpg-agent[7659]: ssh handler 0xABCD1234 for fd 5 started
gpg-agent[7659]: ssh request 1 is not supported
gpg-agent[7659]: ssh request handler for request_identities (11) started
gpg-agent[7659]: no running SCdaemon - starting it
gpg-agent[7659]: DBG: first connection to SCdaemon established
gpg-agent[7659]: no authentication key for ssh on card: Card error
gpg-agent[7659]: /home/user/.gnupg/sshcontrol:4: key '[keygrip from auth key]' skipped: No such file or directory
gpg-agent[7659]: ssh request handler for request_identities (11) ready
The agent has no identities.
gpg-agent[7659]: ssh handler 0xABCD1234 for fd 5 terminated

もちろん、これは、私がスマートカードを使用したことがなく、スマートカードのドライバーをインストールしたこともないので、意味がありません。

さらに、これらのGPGキーは有効であり、インポートされます。上記のキーには認証サブキーもあります。

GnuPGバージョン2.1.1を実行しています。

これを修正する方法はありますか(ボーナスとして)、GPGを介してSSHキーを機能させますか?


~/.gnupg/sshcontrolの内容:

# List of allowed ssh keys.  Only keys present in this file are used
# in the SSH protocol.  The ssh-add tool may add new entries to this

<keygrip from my auth key>

編集:set | grep SSH_AUTH_SOCKを実行すると、次のようになります:

SSH_AUTH_SOCK=/run/user/1000/keyring-PLDuNs/ssh

しかし、このファイルをcatしようとすると、No such device or addressエラーが発生します。ただし、これが関連するのか、それとも戻りを期待するだけのユーザーエラーなのかはわかりません。

3
Kaz Wolfe

セットアップに2つの問題があります。

  1. ただし、このブログから.initスクリプトを借りて使用しました(Xprofileを編集する代わりに)。

    そのブログ投稿の初期化スクリプトは古くなっています(2.1より前のGnuPGのバージョンではi.e。、)。使用しないでください。

  2. 編集:set | grep SSH_AUTH_SOCKを実行すると、次のようになります:

    SSH_AUTH_SOCK=/run/user/1000/keyring-PLDuNs/ssh
    

    ただし、このファイルをcatしようとすると、No such device or addressエラーが発生します。ただし、これが関連するのか、それとも戻りを期待するだけのユーザーエラーなのかわかりません。

    間違ったSSH認証ソケットを使用しています。

これらの主張に関する情報源については、 公式ドキュメント を参照してください。簡単な修正については、Unix StackExchangeの Jens Eratのプロセスの概要 をご覧ください。便宜上、ここにコピーしました:

  1. ssh-agentenable-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 -Lには、OpenPGPキーの使い慣れたSSH公開キー行が含まれているはずです)

    Editor's Note:この手順は キーの 'keygrip'値を~/.gnupg/sshcontrolに追加し、ssh-copy-id でリモートサーバー上で認証することで簡略化できます。 。

  5. ssh通常のSSHキーと同様にターゲットサーバーに
4
Ryan Lue