web-dev-qa-db-ja.com

スマートカードを使用したLinuxホストへのSSHが機能しない

次のコマンドを使用してsshホストに接続したいと思います。

ssh -I /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so HOSTNAME

エラーは、ライブラリがスロットを返さなかったことを示しています。

debug1:プロバイダー/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so:ManufacturerID cryptokiVersion 2.20 libraryDescription libraryVersion 0.17 debug1:pkcs11_add_provider:provider /usr/lib/x86_64-linux-gnu/opensc-pkcs11.soスロットが返されません

リーダーを一覧表示するコマンドは問題なく動作し、スロットが表示されます-そこにあります。

$ opensc-tool --list-readers
# Detected readers (pcsc)
Nr.  Card  Features  Name
0    Yes             Gemalto USB Shell Token V2 00 00

これの理由は何でしょうか?

これは関連している可能性があります: スマートカードのSSH認証を設定するにはどうすればよいですか?

=========================== EDIT ====================== ==========

私はこれをあきらめました。

3
user568021

opensc-tool --list-readersからのメッセージは、リーダーが存在し、カードを認識していることを示しています。

ただし、エラーメッセージの「スロット」は、上位レベルの抽象化、つまりカード自体のプログラム可能な「キースロット」を指します。 pkcs11-tool --list-slotsまたはpkcs11-tool --list-token-slotsで表示できます。

また、opensc-tool --nameを実行して、カードタイプが正しく識別されていることを確認することもできます。

2
telcoM

https://piv.idmanagement.gov/engineering/ssh/#ssh-from-macos から、Linuxでもほぼ同じように機能します。

  1. OpenSCをインストールします。
  2. カードリーダーにPIV/CACを挿入します。
  3. Macで証明書を表示するには、次のように入力します。

    pkcs15-tool --list-public-keys

  4. PIV AUTH公開キーID番号を書き留めます。

  5. カードでのリーダーの使用:SCR35xxスマートカードリーダー
 Public RSA Key [PIV AUTH pubkey]
     Object Flags   : [0x0]
     Usage          : [0xD1], encrypt, wrap, verify, verifyRecover
     Access Flags   : [0x2], extract
     ModLength      : 2048
     Key ref        : 154 (0x9A)
     Native         : yes
     ID             : 01 (EXAMPLE ONLY)
     DirectValue    : <absent>
  1. PIV AUTH pubkey ID番号を使用して、SSHキーを表示します。入る:

    pkcs15-tool --read-ssh-key 01

  2. プロンプトが表示されたら、PIV/CAC PINを入力します。 SSHキーは次のようになります。

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyPn2dShOFLBnMraiP2MnLU ....

  3. SSHキーをコピーして、テキストファイルに貼り付けます。

  4. テキストファイルをサーバー管理者に送信し、新しいアカウントを要求します。
  5. アカウントを取得すると、リモートサーバーにログインできます。入る:

    ssh -I /usr/lib64/opensc-pkcs11.so @

  6. オプションで、/ etc/ssh_configファイルの設定を次のように更新できます。

    PKCS11Provider /usr/lib64/opensc-pkcs11.so

  7. PIV/CACを入力してくださいPINプロンプトが表示されたら、それが検証されたら、リモートサーバーにログインします。

1
user84215