web-dev-qa-db-ja.com

Yubikey OpenPGP認証を使用するようにSSH / PuTTYをセットアップする方法

YubikeyのOpenPGPインターフェイスを使用して、Windows 10コンピューター上のOpenSSHサーバーに対して ここに表示 として自分自身を認証したいと思います。

私は ドキュメントに従ってキーを作成した を持っていました。

_gpg --card-status_は以下を返します。

_Reader ...........: Yubico Yubikey 4 OTP U2F CCID 0
Application ID ...: BEEFBEEFBEEFBEEFBEEFBEEF99990000
Version ..........: 2.1
Manufacturer .....: Yubico
Serial number ....: 99999999
Name of cardholder: John Doe
Language prefs ...: en
Sex ..............: male
URL of public key : https://example.com/pgp.asc
Login data .......: johndoe
Signature PIN ....: required
Key attributes ...: rsa4096 rsa4096 rsa4096
Max. PIN lengths .: 127 127 127
PIN retry counter : 3 3 3
Signature counter : 39
Signature key ....: BEEF BEEF BEEF BEEF BEEF  BEEF BEEF BEEF BEEF 0001
      created ....: 2017-11-20 00:00:01
Encryption key....: BEEF BEEF BEEF BEEF BEEF  BEEF BEEF BEEF BEEF 0002
      created ....: 2017-11-20 00:00:02
Authentication key: BEEF BEEF BEEF BEEF BEEF  BEEF BEEF BEEF BEEF 0003
      created ....: 2017-11-20 00:00:03
General key info..: pub  rsa4096/BEEFBEEFBEEF0001 2017-11-20 John Doe <[email protected]>
sec>  rsa4096/BEEFBEEFBEEF0001  created: 2017-11-20  expires: never
                                Cardnumber:BEEF BEEF9999
ssb>  rsa4096/BEEFBEEFBEEF0002  created: 2017-11-20  expires: never
                                Cardnumber:BEEF BEEF9999
ssb>  rsa4096/BEEFBEEFBEEF0003  created: 2017-11-20  expires: never
                                Cardnumber:BEEF BEEF9999
_

今ブラックホールが上昇します。 ショーケースのドキュメント で述べたように、PuTTYはそのまま動作するはずです。今年は思ったけど試してみました。もちろん、OpenSSHサーバーは認証キーの公開部分を認識していないため、機能しません。 驚き.

しかし、必要なOpenSSH互換のフィンガープリントを抽出して_.ssh/authorized_keys_に入れました:

_gpg --export-ssh-key BEEFBEEFBEEFBEEFBEEFBEEFBEEFBEEFBEEF0003
_

その結果、OpenSSH互換のフィンガープリントが次のコメントとともに追加されました。

_ssh-rsa [...omitted...] openpgp:0xBEEF0003
_

Yubikeyを再挿入し、gpg-agentを再起動して、OpenSSHサーバーへのログインを再試行しました。それもうまくいきませんでした。

もう一度ググってみたところ、別の YubikeyをSSH認証として使用するチュートリアル が見つかりました。

McQueen Labsが推奨する方法で設定 それでも、これは私にはうまくいきませんでした。

No supported authentication methods available (server sent: publickey)以外のカードピンまたはエラーメッセージのプロンプトはありません。

このため、この種のSSH認証はpublickey方式では行われない(可能性は低い)か、構成が欠落していると思います。

これは私に私の質問をもたらします:Yubikey OpenPGP認証を使用するようにPuTTYを設定する方法?そしてサーバー側で何を構成するか.

編集:Yubikey OpenPGPインターフェースは、Gitコミットなどでうまく機能します。しかし、SSH認証には使用できません。

5
burnersk

私のYubiKey 5 NFCで上記と同じ問題が発生しました。 PuTTYが設定ファイルまたは公開を読み取れなかったようです。

Gpgのホームディレクトリを%APPDATA%\gnupg\から%HOMEPATH%\gnupg\に変更すると、Windows 10での問題が解決しました。

Gpgのホームディレクトリを確認するには、コマンドシェルにgpg --versionを配置します。ホームディレクトリを変更するには、新しいホームディレクトリで環境変数GNUPGHOMEを作成します

1
John Truong

これを行うには2つの方法があります。

  1. YubiKeyを使用してSSH認証キーを格納し、SSHサーバーに対して認証する
    • このメソッドはRSAキーのみをサポートし、[A]認証スロットに保存する必要があります
    • この方法はSSHサーバー/クライアントPAMサポートを必要としません

  2. PKCS11証明書を使用した認証に PuTTY-CAC を使用する
    • Yubico設定:PKCS11
    • PuTTY-CAC設定:接続> SSH>証明書
1
JW0914