GnukでOpenPGP card互換のUSBトークンを作ってみた
2010/10/16に開催された楽天テクノロジーカンファレンス2010のLTでg新部さんの発表「Gnuk -- a soother for GnuPG」に触発されてgnukを試してみた。
Gnukで何ができるか
gnukをSTM32 CPU上で動く組み込み機器にインストールすると、OpenPGP card互換のUSBトークンとして利用できます。
OpenPGP cardにはGnuPGの秘密鍵を格納できるため、GnuPGの秘密鍵PCのストレージ上に保存せずに済むようになります。
万が一PCがウイルスやワーム等に感染しても、GnuPGの秘密鍵を盗まれることは(基本的に)ありません。ヤッター!
また、gpg-agentとgpg2sshkeyを利用すればGnuPG鍵をssh用の鍵として利用することも可能です*1。
でもお高いんでしょう?
全然そんなことはありません。
実際につくってみた
ここでは最安値で作れるSTBee Miniの例を紹介。
用意するもの
- STBee Mini
- 通販サイトStrawberry Linuxで1,974円+送料400円(2010/11/13時点)
- Linuxマシン
注意事項
必要なアプリケーションのインストール
設定
必要最低限の設定を紹介。
GnuPGの設定
GnuPG2系を利用する場合、$HOME/.gnupg/scdaemon.confにdisable-ccidの設定が必要。
$ echo disable-ccid >> ~/.gnupg/scdaemon.conf
ccidの設定
libccid_Info.plistにgnukで作成されるFSIJ USB Tokenを登録する。
Debian/Ubuntuは/etc/libccid_Info.plist
Gentooは/usr/lib/readers/usb/ifd-ccid.bundle/Contents/Info.plist
$ sudo vi /etc/libccid_Info.plist --- a/libccid_Info.plist 2009-07-29 06:50:20.000000000 +0900 +++ b/libccid_Info.plist 2010-09-05 09:09:49.000000000 +0900 @@ -104,6 +104,7 @@ <key>ifdVendorID</key> <array> + <string>0x234B</string> <string>0x08E6</string> <string>0x08E6</string> <string>0x08E6</string> @@ -237,6 +238,7 @@ <key>ifdProductID</key> <array> + <string>0x0000</string> <string>0x2202</string> <string>0x3437</string> <string>0x3438</string> @@ -370,6 +372,7 @@ <key>ifdFriendlyName</key> <array> + <string>FSIJ USB Token</string> <string>Gemplus Gem e-Seal Pro</string> <string>Gemplus GemPC Twin</string> <string>Gemplus GemPC Key</string>
pcscdの起動
$ sudo /etc/init.d/pcscd start
ARMのクロスコンパイル環境を構築する
コマンドひとつでインストールできる。
http://github.com/esden/summon-arm-toolchain/
からsummon-arm-toolchainをダウンロード。
$ wget http://github.com/esden/summon-arm-toolchain/raw/master/summon-arm-toolchain $ chmod +x summon-arm-toolchain $ ./summon-arm-toolchain ( $HOME/sat に構築される。場所は変更可能 )
gnukをコンパイル
http://www.fsij.org/gnuk/ から最新版をダウンロード。2010/11/10時点の最新版は0.4
$ curl http://www.gniibe.org/oitoite/gnuk/gnuk-0.4.tar.gz | tar zxf - (もしくは git clone http://www.gniibe.org/git/gnuk.git/) $ cd gnuk-0.4/src $ ./configure --target=STBEE_MINI (STBee Miniの場合) Configured for target: STBEE_MINI Using random serial number for card AID Configured for DFU $ PATH=$HOME/sat/bin:$PATH make ...
STBee Miniを接続する
LinuxとSTBee MiniをUSBで接続する。LEDが点滅することを確認。
STBee MiniをDFUモードで起動
PCのUSBポートに接続後、USERスイッチを押しながらRESETスイッチを押し、RESETスイッチから指を離し、最後にUSERスイッチを離す。
LEDの点滅が遅くなったらDFUモード。もしくはlsusbで0483:df11が見えればDFUモードになっている。
$ sudo lsusb -d 0483: Bus 005 Device 038: ID 0483:df11 SGS Thomson Microelectronics
ROMを焼く
STBee Miniの場合、tool/dfuse.pyで。
$ cd ../tool $ sudo ./dfuse.py ../src/gnuk.hex ...
焼けたらリセットボタンを押すか、USBケーブルを抜き挿しを行う。
LEDが再び点滅しだしたら、lsusbで確認。
$ lsusb -v -d 234b: Bus 005 Device 030: ID 234b:0000 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x234b idProduct 0x0000 bcdDevice 2.00 iManufacturer 1 Free Software Initiative of Japan iProduct 2 FSIJ USB Token iSerial 3 20101023 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 86 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 11 Chip/SmartCard bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 ChipCard Interface Descriptor: bLength 54 bDescriptorType 33 bcdCCID 1.00 nMaxSlotIndex 0 bVoltageSupport 1 5.0V dwProtocols 2 T=1 dwDefaultClock 3580 dwMaxiumumClock 3580 bNumClockSupported 1 dwDataRate 9600 bps dwMaxDataRate 9600 bps bNumDataRatesSupp. 1 dwMaxIFSD 254 dwSyncProtocols 00000000 dwMechanical 00000000 dwFeatures 00040040 Auto parameter negotation made by CCID Short and extended APDU level exchange dwMaxCCIDMsgLen 64 bClassGetResponse echo bClassEnvelope echo wlcdLayout none bPINSupport 0 bMaxCCIDBusySlots 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Device Status: 0x0001 Self Powered
格納するGPG鍵を用意する
格納できるGPG鍵はRSA-2048。RSA-2048の鍵がない場合は生成する。
$ gpg --gen-key gpg (GnuPG) 2.0.16; Copyright (C) 2009 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ご希望の鍵の種類を選択してください: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (署名のみ) (4) RSA (署名のみ) 選択は? 1 RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (2048) 要求された鍵長は2048ビット 鍵の有効期限を指定してください。 0 = 鍵は無期限 <n> = 鍵は n 日間で満了 <n>w = 鍵は n 週間で満了 <n>m = 鍵は n か月間で満了 <n>y = 鍵は n 年間で満了 鍵の有効期間は? (0) Key does not expire at all これで正しいですか? (y/N) y You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>" 本名: MATSUU Takuto 電子メール・アドレス: matsuu@matsuu.org コメント: FSIJ USB Token v2 次のユーザーIDを選択しました: “MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org>” 名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? O 秘密鍵を保護するためにパスフレーズがいります。 今から長い乱数を生成します。キーボードを打つとか、マウスを動かす とか、ディスクにアクセスするとかの他のことをすると、乱数生成子で 乱雑さの大きないい乱数を生成しやすくなるので、お勧めいたします。 今から長い乱数を生成します。キーボードを打つとか、マウスを動かす とか、ディスクにアクセスするとかの他のことをすると、乱数生成子で 乱雑さの大きないい乱数を生成しやすくなるので、お勧めいたします。 gpg: 鍵03706F96を絶対的に信用するよう記録しました 公開鍵と秘密鍵を作成し、署名しました。 gpg: 信用データベースの検査 gpg: 最小の「ある程度の信用」3、最小の「全面的信用」1、PGP信用モデル gpg: 深さ: 0 有効性: 2 署名: 17 信用: 0-, 0q, 0n, 0m, 0f, 2u gpg: 深さ: 1 有効性: 17 署名: 0 信用: 17-, 0q, 0n, 0m, 0f, 0u gpg: 次回の信用データベース検査は、2013-01-22です pub 2048R/03706F96 2010-11-12 指紋 = 1C8E 7A09 AFDD 6158 AF5D E090 E842 853D 0370 6F96 uid MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org> sub 2048R/27B17D2A 2010-11-12
ついでに暗号化鍵も作成しておく。--expert --edit-keyで。
$ gpg --expert --edit-key 03706F96 gpg (GnuPG) 2.0.16; Copyright (C) 2009 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. 秘密鍵が使用できます。 pub 2048R/03706F96 作成: 2010-11-12 満了: 無期限 利用法: SC 信用: 絶対的 有効性: 絶対的 sub 2048R/27B17D2A 作成: 2010-11-12 満了: 無期限 利用法: E [ultimate] (1). MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org> gpg> addkey 鍵は保護されています。 次のユーザーの秘密鍵のロックを解除するには パスフレーズがいります:“MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org>” 2048ビットRSA鍵, ID 03706F96作成日付は2010-11-12 ご希望の鍵の種類を選択してください: (3) DSA (署名のみ) (4) RSA (署名のみ) (5) Elgamal (暗号化のみ) (6) RSA (暗号化のみ) (7) DSA (set your own capabilities) (8) RSA (独自能力を設定) 選択は? 8 鍵RSAに可能な操作: Sign Encrypt Authenticate 今、可能な操作: Sign Encrypt (S) 署名力の反転 (E) 暗号力の反転 (A) 認証力の反転 (Q) 完了 選択は? A 鍵RSAに可能な操作: Sign Encrypt Authenticate 今、可能な操作: Sign Encrypt Authenticate (S) 署名力の反転 (E) 暗号力の反転 (A) 認証力の反転 (Q) 完了 選択は? S 鍵RSAに可能な操作: Sign Encrypt Authenticate 今、可能な操作: Encrypt Authenticate (S) 署名力の反転 (E) 暗号力の反転 (A) 認証力の反転 (Q) 完了 選択は? E 鍵RSAに可能な操作: Sign Encrypt Authenticate 今、可能な操作: Authenticate (S) 署名力の反転 (E) 暗号力の反転 (A) 認証力の反転 (Q) 完了 選択は? Q RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (2048) 要求された鍵長は2048ビット 鍵の有効期限を指定してください。 0 = 鍵は無期限 <n> = 鍵は n 日間で満了 <n>w = 鍵は n 週間で満了 <n>m = 鍵は n か月間で満了 <n>y = 鍵は n 年間で満了 鍵の有効期間は? (0) Key does not expire at all これで正しいですか? (y/N) y 本当に作成しますか? (y/N) y 今から長い乱数を生成します。キーボードを打つとか、マウスを動かす とか、ディスクにアクセスするとかの他のことをすると、乱数生成子で 乱雑さの大きないい乱数を生成しやすくなるので、お勧めいたします。 pub 2048R/03706F96 作成: 2010-11-12 満了: 無期限 利用法: SC 信用: 絶対的 有効性: 絶対的 sub 2048R/27B17D2A 作成: 2010-11-12 満了: 無期限 利用法: E sub 2048R/5D001641 作成: 2010-11-12 満了: 無期限 利用法: A [ultimate] (1). MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org>
できた。
GPG鍵をUSBトークンに格納する
まずgpg-agentを起動する。これがないとGnuPGからOpenPGP cardをうまく扱えない模様。
$ eval $(gpg-agent --daemon)
OpenPGP cardのステータスを取得する。
$ gpg --card-status Application ID ...: D276000124010200FFFE1ABE1C420000 Version ..........: 2.0 Manufacturer .....: unmanaged S/N range Serial number ....: 1ABE1C42 Name of cardholder: [未設定] Language prefs ...: [未設定] Sex ..............: 無指定 URL of public key : [未設定] Login data .......: [未設定] Signature PIN ....: 強制 Key attributes ...: 2048R 2048R 2048R Max. PIN lengths .: 127 127 127 PIN retry counter : 3 3 3 Signature counter : 0 Signature key ....: [none] Encryption key....: [none] Authentication key: [none] General key info..: [none]
こんな感じで表示されれば成功。
個人情報を記入していく。
$ gpg --card-edit Application ID ...: D276000124010200FFFE1ABE1C420000 Version ..........: 2.0 Manufacturer .....: unmanaged S/N range Serial number ....: 1ABE1C42 Name of cardholder: [未設定] Language prefs ...: [未設定] Sex ..............: 無指定 URL of public key : [未設定] Login data .......: [未設定] Signature PIN ....: 強制 Key attributes ...: 2048R 2048R 2048R Max. PIN lengths .: 127 127 127 PIN retry counter : 3 3 3 Signature counter : 0 Signature key ....: [none] Encryption key....: [none] Authentication key: [none] General key info..: [none] gpg/card>
まずPINを変更する。OpenPGP cardのデフォルトのPINは123456。
OpenPGP cardのPINは数字である必要はない。英数字OK。
gpg/card> passwd ... PIN changed.
管理権限に移行。
gpg/card> admin 管理コマンドが許可されています
性別を設定。性別を設定しようとするとAdmin PINを求められる。OpenPGP cardのデフォルトのAdmin PINは12345678。
gpg/card> sex 性別 ((M)男、(F)女、空白): M
名前、ログインアカウント、公開鍵のURL、言語の変更。公開鍵のURLに記載した場所に公開鍵を設置。
gpg/card> name カード所有者の姓 (surname): MATSUU カード所有者の名 (given name): Takuto gpg/card> login ログイン・データ (アカウント名): matsuu gpg/card> url 公開鍵を探索するURL: http://matsuu.org/gnupg/matsuu_fsij_token.asc gpg/card> lang 言語の選好: ja
Admin PINとリセットコードの変更。
gpg/card> passwd gpg: OpenPGPカードno. D276000124010200FFFE1DC0A4AA0000を検出 1 - change PIN 2 - unblock PIN 3 - change Admin PIN 4 - set the Reset Code Q - quit 選択は? 3 PIN changed. ange PIN 2 - unblock PIN 3 - change Admin PIN 4 - set the Reset Code Q - quit 選択は? 4 Reset Code set. 1 - change PIN 2 - unblock PIN 3 - change Admin PIN 4 - set the Reset Code Q - quit 選択は? Q gpg/card> quit
次にGPG鍵をUSBトークンにインポート。署名鍵、認証鍵、
$ gpg --edit-key 03706F96 gpg (GnuPG) 2.0.16; Copyright (C) 2009 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. 秘密鍵が使用できます。 pub 2048R/03706F96 作成: 2010-11-12 満了: 無期限 利用法: SC 信用: 絶対的 有効性: 絶対的 sub 2048R/27B17D2A 作成: 2010-11-12 満了: 無期限 利用法: E sub 2048R/5D001641 作成: 2010-11-12 満了: 無期限 利用法: A [ultimate] (1). MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org> gpg> toggle sec 2048R/03706F96 作成: 2010-11-12 満了: 無期限 ssb 2048R/27B17D2A 作成: 2010-11-12 満了: 無期限 ssb 2048R/5D001641 作成: 2010-11-12 満了: 無期限 (1) MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org> gpg> addcardkey まず“toggle”コマンドを使ってください。 gpg> keytocard この主鍵を本当に移動しますか? (y/N) y Signature key ....: [none] Encryption key....: [none] Authentication key: [none] 鍵の保管場所を選択してください: (1) 署名鍵 (3) 認証鍵 選択は? 1 次のユーザーの秘密鍵のロックを解除するには パスフレーズがいります:“MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org>” 2048ビットRSA鍵, ID 03706F96作成日付は2010-11-12 sec 2048R/03706F96 作成: 2010-11-12 満了: 無期限 カード番号: FFFE 1ABE1C42 ssb 2048R/27B17D2A 作成: 2010-11-12 満了: 無期限 ssb 2048R/5D001641 作成: 2010-11-12 満了: 無期限 (1) MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org> gpg> key 1 sec 2048R/03706F96 作成: 2010-11-12 満了: 無期限 カード番号: FFFE 1ABE1C42 ssb* 2048R/27B17D2A 作成: 2010-11-12 満了: 無期限 ssb 2048R/5D001641 作成: 2010-11-12 満了: 無期限 (1) MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org> gpg> keytocard Signature key ....: [none] Encryption key....: [none] Authentication key: [none] 鍵の保管場所を選択してください: (2) 暗号化鍵 選択は? 2 次のユーザーの秘密鍵のロックを解除するには パスフレーズがいります:“MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org>” 2048ビットRSA鍵, ID 27B17D2A作成日付は2010-11-12 sec 2048R/03706F96 作成: 2010-11-12 満了: 無期限 カード番号: FFFE 1ABE1C42 ssb* 2048R/27B17D2A 作成: 2010-11-12 満了: 無期限 カード番号: FFFE 1ABE1C42 ssb 2048R/5D001641 作成: 2010-11-12 満了: 無期限 (1) MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org> gpg> key 1 sec 2048R/03706F96 作成: 2010-11-12 満了: 無期限 カード番号: FFFE 1ABE1C42 ssb 2048R/27B17D2A 作成: 2010-11-12 満了: 無期限 カード番号: FFFE 1ABE1C42 ssb 2048R/5D001641 作成: 2010-11-12 満了: 無期限 (1) MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org> gpg> key 2 sec 2048R/03706F96 作成: 2010-11-12 満了: 無期限 カード番号: FFFE 1ABE1C42 ssb 2048R/27B17D2A 作成: 2010-11-12 満了: 無期限 カード番号: FFFE 1ABE1C42 ssb* 2048R/5D001641 作成: 2010-11-12 満了: 無期限 (1) MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org> gpg> keytocard Signature key ....: [none] Encryption key....: [none] Authentication key: [none] 鍵の保管場所を選択してください: (3) 認証鍵 選択は? 3 次のユーザーの秘密鍵のロックを解除するには パスフレーズがいります:“MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org>” 2048ビットRSA鍵, ID 5D001641作成日付は2010-11-12 sec 2048R/03706F96 作成: 2010-11-12 満了: 無期限 カード番号: FFFE 1ABE1C42 ssb 2048R/27B17D2A 作成: 2010-11-12 満了: 無期限 カード番号: FFFE 1ABE1C42 ssb* 2048R/5D001641 作成: 2010-11-12 満了: 無期限 カード番号: FFFE 1ABE1C42 (1) MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org> gpg> quit 変更を保存しますか? (y/N) y
カード番号が入ったことを確認。これでGPG鍵はPC上には残ってません。
ここで一旦USBトークンをPCから抜き挿し、またはRESETボタンを押す。
反映されているか確認。
$ gpg --card-status Application ID ...: D276000124010200FFFE1ABE1C420000 Version ..........: 2.0 Manufacturer .....: unmanaged S/N range Serial number ....: 1ABE1C42 Name of cardholder: Takuto MATSUU Language prefs ...: ja Sex ..............: 男 URL of public key : http://matsuu.org/gnupg/matsuu_fsij_token.asc Login data .......: matsuu Signature PIN ....: 強制 Key attributes ...: 2048R 2048R 2048R Max. PIN lengths .: 127 127 127 PIN retry counter : 3 3 3 Signature counter : 0 Signature key ....: 1C8E 7A09 AFDD 6158 AF5D E090 E842 853D 0370 6F96 created ....: 2010-11-12 16:57:35 Encryption key....: 9639 9D7B 101C D532 FE78 0CC5 F5C7 E2BB 27B1 7D2A created ....: 2010-11-12 16:57:35 Authentication key: 3181 D1AD 0A7D 07E7 E246 305E C3BD 113A 5D00 1641 created ....: 2010-11-12 17:03:41 General key info..: pub 2048R/03706F96 2010-11-12 MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org> sec> 2048R/03706F96 作成: 2010-11-12 満了: 無期限 カード番号: FFFE 1ABE1C42 ssb> 2048R/27B17D2A 作成: 2010-11-12 満了: 無期限 カード番号: FFFE 1ABE1C42 ssb> 2048R/5D001641 作成: 2010-11-12 満了: 無期限 カード番号: FFFE 1ABE1C42
このようにSignature key, Encryption key, Authentication keyが入っていればOK。
署名と検証を試す
$ echo hoge > hogefile $ gpg -u 03706F96 --clearsign hogefile ||< 署名されたファイルはhogefile.ascに出力される。確認および検証。 >|| $ cat hogefile.asc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 hoge -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) iQEcBAEBAgAGBQJM3Xe2AAoJEOhChT0DcG+WFtwH/RKIXu/MP3EDxsHhxEQZVmKv 3Za7RMnnnkz5oViFJ2wudUgHbWpajA86MsnrZos2Cnp1ycwzWUtxjB+IZEr9AUI8 pWUuOgHZX683OOg7sbITuHPPldGYaNXbW5ryZSdizhlwWYEg7QbxahPteifSuBnq u5pXHtAWUOPliLsQw4qvXl9vJubeth/AGQNMg3ciubRQVpqJWw68PLVTh0+tME+1 bbe1zHQEEcraAwWWzrWiCCz7oFeDdD+zQsSR9KQGF4v7v5JYNMqa3xOxFb5hO6Fk SYYGGydJQS0X+Nv5yRGqfVZffn3aP4nhw3nTNCMvPSU3g5V3pTDnGs8TNQ6QWa8= =elp8 -----END PGP SIGNATURE----- $ gpg --verify hogefile.asc gpg: 2010年11月13日 02時21分58秒 JSTにRSA鍵ID 03706F96で施された署名 gpg: “MATSUU Takuto (FSIJ USB Token v2) <matsuu@matsuu.org>”からの正しい署名
暗号化と復号化を試す(調査中)
$ echo hoge > hogefile $ gpg -r 03706F96 -e hogefile $ xxd hogefile.gpg 0000000: 8501 0c03 f5c7 e2bb 27b1 7d2a 0107 ff49 ........'.}*...I 0000010: a88f 083e 62ef d87a c30e 36f0 c679 746f ...>b..z..6..yto 0000020: 4bbf f2ca 5ec0 f8c8 e092 bf45 5577 565b K...^......EUwV[ 0000030: 1763 94ae df4e 4874 61c4 f3ef 7439 3611 .c...NHta...t96. 0000040: bb6c 80a6 a05a dba9 52a5 2813 76a8 0f37 .l...Z..R.(.v..7 0000050: 5c2a bf15 cdc9 3048 8b7f a72e 9af8 5089 \*....0H......P. 0000060: 370c baf2 b28a 0d57 32bb 4460 eb55 0967 7......W2.D`.U.g 0000070: db73 fcdc 13f2 81b8 27bd dfd7 a101 e6f4 .s......'....... 0000080: 553d cbc9 ce57 f3ce d913 dfc4 20c2 27b8 U=...W...... .'. 0000090: 1a7e ea7c 26dd f8d8 8315 85ba b88f 52a3 .~.|&.........R. 00000a0: c04b 6e27 54e7 1f68 4780 8aed 2606 c962 .Kn'T..hG...&..b 00000b0: af69 ccd2 75e9 f419 16bb 6b82 62a2 18a6 .i..u.....k.b... 00000c0: c250 ad41 8daa 11d9 1f1c 7851 f3ba c8a6 .P.A......xQ.... 00000d0: fc04 6d30 8913 16e1 12cb 641a dd36 2daf ..m0......d..6-. 00000e0: 639d fa52 d8ce f3ba 9181 eb30 770c 9cb9 c..R.......0w... 00000f0: 07ea 938e 7fe9 fc46 6dc0 6bc1 7d44 078e .......Fm.k.}D.. 0000100: 9636 fa14 2986 0b35 6b1a 670b 5a1a 1ed2 .6..)..5k.g.Z... 0000110: 4601 35d3 2412 d288 ce45 a64f b833 2469 F.5.$....E.O.3$i 0000120: 4b30 2ab6 a928 f108 c8d3 2ea1 0666 b42d K0*..(.......f.- 0000130: 03f7 8231 d871 76fb 5809 7685 f4c7 7a6f ...1.qv.X.v...zo 0000140: ee90 460a f524 9732 5ad4 1af5 37e4 de7a ..F..$.2Z...7..z 0000150: ee6d 1a93 5cd0 3f .m..\.? $ gpg hogefile.gpg
でいけるはずなのだけど、PIN blockedになってしまった。調査中。
認証鍵を試す(調査中)
認証鍵を試すためには、$HOME/.gnupg/gpg.confと$HOME/.gnupg/gpg-agent.confに設定が必要。
設定後、gpg-agentを再起動する必要がある*2。
gpgkey2sshでSSHの公開鍵相当を生成。gpgkey2sshで指定するのはsubkeyの認証鍵なので注意。
$ echo use-agent >> ~/.gnupg/gpg.conf $ echo enable-ssh-support >> ~/.gnupg/gpg-agent.conf $ pkill gpg-agent $ eval $(gpg-agent --daemon) $ gpgkey2ssh 5D001641 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCemHaHg2wxqb++P8vIrGI2fhId0Pl698RsHLG2adUiTdRDlvJ8JFYUYZWVJ4OkMkpieUu2K55GiU6EKsgQInLMMwGrpbWduFY1YlEKWubGlgcjauA2EcAZkkjy6BKdGrmdG8308kT2jduKIYg4Bj4rPycRmIIW5IgvogvSX6j9jKM0AFiFUKnkxqiL+kURwRyXo76GxOrUMuLJviY/5yZEw8QLOraPPDcb357nMNQ6ZfRbClzgkE9Hoiwb76T2AdgyvRb1zYXC7790BL0WI0BpOQaqjRK6drkE3TgsXnXQKHxcRc5T4rbcIqJa5BvNZQZWlH0P0N4EchH4olwNgpb9 COMMENT
これをssh接続先の$HOME/.ssh/authorized_keysに追加してやればsshできるはずなのだが・・・まだできてません。調査中です。
その他
STM32 Primer2であれば秋葉原の秋月で6,100円で購入できます。入り口すぐのレジの前あたりにあります。