はじめに
これはマイナンバーカードでSSHするまでの備忘録である.
大元はhamanoさんのこの記事を参考にしている -> マイナンバーカードでSSHする
自分がハマったところで他の人がはまらないように...
2017年 6/17に追記しました.hamanoさんご指摘ありがとうございます!
環境
ツール | バージョン | |
---|---|---|
OS | OS X | 10.12.5 |
カードリーダー | ACR1251CL-NTTCom | - |
OpenSCカードドライバを用意する
OpenSCはスマートカード用のツールやライブラリーを提供するプロジェクトだ.
今回はフォークされたJPKIブランチを利用した.(確認してないだけで本家にマージされている模様)
$ git clone https://github.com/jpki/OpenSC.git
$ ./bootstrap
$ ./configure
$ make
$ make install
./bootstrap
$ ./bootstrap
を実行したところ下記のエラーが出た.
$ ./bootstrap [jpki]
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal -I m4 --output=aclocal.m4t
Can't exec "aclocal": No such file or directory at /usr/local/Cellar/autoconf/2.69/share/autoconf/Autom4te/FileUtils.pm line 326.
autoreconf: failed to run aclocal: No such file or directory
ググるとCan't exec "aclocal": No such file or directoryの対処法
"aclocal"というのは、"automake"パッケージに含まれているそうです。
とのことだったのでこれを入れる
$ brew install automake
再度実行するが, またエラー.
./bootstrap [jpki]
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/local/Cellar/autoconf/2.69/bin/autoconf --force
configure.ac:287: error: possibly undefined macro: AC_LIBTOOL_WIN32_DLL
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:288: error: possibly undefined macro: AC_LIBTOOL_RC
configure.ac:289: error: possibly undefined macro: AC_PROG_LIBTOOL
autoreconf: /usr/local/Cellar/autoconf/2.69/bin/autoconf failed with exit status: 1
これまたググるとundefined macro: AC_PROG_LIBTOOL
I guess (g)libtool is missing. Looks like you use
brew install libtool
maybe brew install libtool fix the problem.
とのことだったので入れる.
brew install libtool
すると, 成功🙆♂️
./bootstrap [jpki]
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: running: glibtoolize --copy --force
glibtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, '.'.
glibtoolize: copying file './ltmain.sh'
glibtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
glibtoolize: copying file 'm4/libtool.m4'
glibtoolize: copying file 'm4/ltoptions.m4'
glibtoolize: copying file 'm4/ltsugar.m4'
glibtoolize: copying file 'm4/ltversion.m4'
glibtoolize: copying file 'm4/lt~obsolete.m4'
glibtoolize: Remember to add 'LT_INIT' to configure.ac.
autoreconf: running: /usr/local/Cellar/autoconf/2.69/bin/autoconf --force
autoreconf: running: /usr/local/Cellar/autoconf/2.69/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:58: installing './compile'
configure.ac:57: installing './config.guess'
configure.ac:57: installing './config.sub'
configure.ac:28: installing './install-sh'
configure.ac:28: installing './missing'
src/common/Makefile.am: installing './depcomp'
autoreconf: Leaving directory `.'
./configure
も実行し成功.
あとはmakeするだけ.
$ make
$ make install
SSHする(失敗)
認証用の公開鍵をOpenSCを用いて抽出する. そしてauthorized_keysに突っ込む.
hamanoさんのポストにあった--read-ssh-key
というオプションはなくなっていたので--read-public-key
を指定.
hamanoさんご本人から指摘をいただき, 修正したら--read-ssh-key
の読み込みに成功しました!
opensslの環境が必要だとのこと. 本稿では下記との整合性を保つため--read-public-key
のまま進めます.
あ、ビルド環境にopensslの開発環境が無いと--read-ssh-keyが消えるらしい。./configure --enable-openssl で確認してみて。
— Tsukasa Hamano (@hamano) 2017年6月16日
$ pkcs15-tool --read-public-key 1 > id_rsa.pub
私はわかりやすいようにmynumber.pubにリネームしたので
$ pkcs15-tool --read-public-key 1 > mynumber2.pub
だがしかしここで詰まる
意気揚々と指定された形で下のようにsshしようとするが、鍵を読んでくれない....
$ ssh -I /usr/local/lib/opensc-pkcs11.so hostname
Enter passphrase for key '/Users/shuya/.ssh/id_rsa':
困ったと思いググるとこんなブログポストが
YubiKeyのPIVカードでSSHする
SSHする(成功)
上記のポストでは公開鍵をssh-keygen越しに抽出しているのでこれを試す.
$ ssh-keygen -D /usr/local/lib/opensc-pkcs11.so > mynumber.pub
恐る恐る, これでsshしてみると...
$ ssh -I /usr/local/lib/opensc-pkcs11.so HOSTNAME
Enter PIN for 'User Authentication PIN (JPKI)':
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-71-generic x86_64)
Last login: Sat May 20 19:49:16 2017 from xxxxxxxx
ccx02:~>
成功 :)
参考
Can't exec "aclocal": No such file or directoryの対処法
undefined macro: AC_PROG_LIBTOOL
YubiKeyのPIVカードでSSHする