このチュートリアル を使用して、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
エラーが発生します。ただし、これが関連するのか、それとも戻りを期待するだけのユーザーエラーなのかはわかりません。
セットアップに2つの問題があります。
ただし、このブログから
.init
スクリプトを借りて使用しました(Xprofileを編集する代わりに)。
そのブログ投稿の初期化スクリプトは古くなっています(2.1より前のGnuPGのバージョンではi.e。、)。使用しないでください。
編集:
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のプロセスの概要 をご覧ください。便宜上、ここにコピーしました:
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
には、OpenPGPキーの使い慣れたSSH公開キー行が含まれているはずです)Editor's Note:この手順は キーの 'keygrip'値を
~/.gnupg/sshcontrol
に追加し、ssh-copy-id
でリモートサーバー上で認証することで簡略化できます。 。ssh
通常のSSHキーと同様にターゲットサーバーに