web-dev-qa-db-ja.com

SSHにHSPD-12(PIV)キーを使用する

HSPD-12カードでオンボードキーで生成されたキーをopensshキーとして使用できますか?もしそうなら、どのように?

1
UDude

SmartcardsとOpenssh

スマートカードのポイントは、生成されたキーペアの秘密キーを抽出できないことですが、公開キーは一般的にアクセス可能です。

* nixの場合、opensc(github.com/OpenSC)ツールをインストールする必要があります。 Ubuntuについて:

$ Sudo apt-get install opensc
$ Sudo apt-get install opensc-pkcs11

役立つと思われる追加のパッケージには、OpenSSL(上記でインストールされたengine-pkcs11.soの場合-ただし、このプロセスには必要ありません)が含まれます。

sshとsmartcardsに関する主な質問に戻る:

カードで生成された2048バイトのRSAキーであるsshを例にとると、リモートホストに公開キーを配置する必要があります。次に、デスクトップ(デスクトップ:スマートカードが挿入されたスマートカードリーダー)からリモートホストにSSHで接続すると、カードのロックを解除するためにPINを入力するように求められます。

公開鍵を抽出します

私のテストHSPD-12/PIVでは、最初のキースロットは認証キーで、2番目は署名キーです。 opensc-toolsを使用して公開鍵を抽出します。

# note:  use 'lsusb' to see if you can see your card reader, if not fix it.

$ pkcs15-tool --read-certificate 2 --out my_key.pub

リモートホストで、他の公開鍵を追加するのと同じ方法で、my_key.pubの内容を〜/ .ssh/authorized_keys2ファイルに配置します。

Opensshの例:

    $ ssh -I /usr/lib/opensc-pkcs11.so martin@remotehost
    Enter PIN for 'MARTIN PALJAK (PIN1)': 
    martin@remotehost:~$

上記はOpenSCプロジェクトウィキから抜粋したものです: https://github.com/OpenSC/OpenSC/wiki/OpenSSH-and-smart-cards-PKCS%2311

uDude

2
UDude