CommentsTweetPocketここ最近、仕事が変わったのとRustでこさえてたツールの改修に手間取っててあまり触ってたなかったのだけど、ある程度一段落したのでGoのsshクライアントの改修に着手した。sshでの接続方式というといくつかあると思うが、最近はYubikeyをPIVカードとして利用して、Yubikey内の秘密鍵を使ってssh接続するというやり方もあるので、それをGolangで実装しようと思いやってみた。これ、実はかなり手間取ってしまい、結構時間がかかってしまった...。Yubikey等のPIVカードに入ってる秘密鍵を使ってssh接続する場合、OpenSCなどのPKCS11を扱えるライブラリが必要になるのだが、それがいまいちよくわからなかった(実装できた今もさっぱりわからない...)。Golangは結構いろんな人がいろんなライブラリを提供してくれてて、その中にpkcs11を扱うための、OpenSCなどのラッパーとして扱えるライブラリもあるのだが、それらを利用する。ssh接続をする場合はYubikeyのKeyPairを使って、Signerとして扱える必要があるので、今回はcrypto11というライブラリを主に使っている(ココいくまでも右往左往してしまった...)。Links以下、サンプルコード。一応こっちにも上げてある。自動取得にする場合は、"pkcs11.NewAttribute"で指定して取得することで対応すればいい。Yubikey)ではできた)。PKCS11、ちゃんと扱える様になりたいのだけど、自分が理解できるような情報がいまいち見つけられず、未だによくわかってない...。blacknonインフラエンジニア(...のつもり)。仕事で使うならクライアントはWindowsよりはUNIXの方が好き。Commentコメントをキャンセルメールアドレスが公開されることはありません。