web-dev-qa-db-ja.com

ssh-agentの代わりにgpg-agent

Yubikey 4を使用しており、これに保存されているGPGキーを使用してSSHサーバーへの認証を行いたいと考えています。
最初にGitHubを使用したいと思います。 GPG認証キーをGitHubに追加しました。

私の問題は、sshを実行すると、エージェントがこのキーを使用しないことです。 ssh -vでVPSに接続しようとして確認しましたが、GPGキーがスキップされます。私のYubikeyは接続されており、gpg2 --card-statusにすべての詳細が表示されます。 Yubikeyの他の機能を使用するだけでなく、正常に署名および復号化することができます。

Sshouput

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/wilhelm/.ssh/id_rsa
debug1: Trying private key: /home/wilhelm/.ssh/id_dsa
debug1: Trying private key: /home/wilhelm/.ssh/id_ecdsa
debug1: Trying private key: /home/wilhelm/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).

Gnomeパスワードマネージャーを無効にしました。

SSHとGitをgpg-agentに接続する を見て、提案に従いましたが、機能していないようです。

╰─ ssh-add -l
Could not open a connection to your authentication agent.

╰─ ps aux | grep gpg-agent
wilhelm  26079  0.0  0.0  20268   980 ?        Ss   20:57   0:00 gpg-agent --daemon --enable-ssh-support --sh
wilhelm  31559  0.0  0.0  12724  2184 pts/1    S+   22:49   0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn gpg-agent
4
Wilhelm Erasmus

sshは、_gpg-agent_への接続を開く方法を提供しない場合、開くことができません。

_gpg-agent_を_--enable-ssh-support_オプションで開始すると、sshを使用するシェルで使用できる必要がある環境変数が出力されます。それらを取得する方法はいくつかあります。

  • _gpg-agent_を停止し、sshを使用しているシェルでこのようにもう一度開始します(これがテストの最も簡単な方法です)。

    _eval $(gpg-agent --daemon --enable-ssh-support --sh)
    _
  • 認証ソケットの場所を見つけて、環境変数_SSH_AUTH_SOCK_を手動で設定します

後で、それが機能することがわかったら、 gpg-agent(1) のマニュアルページに従ってエージェントの開始を設定する必要があるため、おそらく_~/.xsession_でそれを許可します自動的に起動します。

4
Jakuje