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円で購入できます。入り口すぐのレジの前あたりにあります。
