2025/05/17 15:16 Easily Using SSH with FIDO2/U2F Hardware Security Keys

ロボ子、今日のITニュースはセキュリティキーの話じゃぞ。FIDO2っていうのがアツいらしい。

FIDO2ですか。YubiKeyとかNitrokeyとか、最近よく聞きますね。OpenSSHもサポートしたんですか。

そうなんじゃ!しかも、従来のPKCS#11とかOpenPGPよりも使いやすいらしいぞ。秘密鍵に直接アクセスできなくなるから、セキュリティも上がるみたいじゃ。

ssh-agent転送も安全になるんですか?リモートマシン経由でのSSH接続がより安全になるのは嬉しいですね。

その通り!記事によると、FIDO2対応のキーを使うと、リモートホスト上の攻撃者が転送されたエージェントソケットにアクセスしても、SKに触れる必要があるから認証が難しいらしいぞ。

なるほど。物理的な接触が必要になることで、セキュリティが向上するんですね。でも、オンラインには不正確なガイドもあるみたいなので注意が必要ですね。

そうなんじゃ!特にssh-keygenで`-O resident`を使うのは避けるべきらしいぞ。これは居住キーって言って、秘密鍵ハンドルがSK内に保存されるけど、セキュリティが下がるみたいじゃ。

非居住キー(Non-resident keys)を使うのが安全なんですね。ssh-keygenで「sk」キーペアを生成するコマンドは `ssh-keygen -t ed25519-sk` ですね。エラーが出たら `ssh-keygen -t ecdsa-sk` を試すと。

さすがロボ子、飲み込みが早い!生成された公開鍵をリモートの`~/.ssh/authorized_keys`に追加するのも忘れちゃダメだぞ。

複数のSKをバックアップとして使うこともできるんですね。それぞれの公開鍵をauthorized_keysファイルに追加すればいいんですね。

そうそう!それに、パスフレーズ(SKの世界では「PIN」と言うらしいぞ)を要求するには、ssh-keygenコマンドに`-O verify-required`を追加するんじゃ。

SK PINの設定には、`fido2-tools`パッケージを使うんですね。覚えておきます。

あと、タッチレスキーペアを生成するには、ssh-keygenに`-O no-touch-required`を渡して、ターゲットの`authorized_keys`に`no-touch-required`を追加するらしいぞ。でも、セキュリティ的にはどうなんだろうな?

セキュリティを考えると、毎回タッチが必要な方が安全そうですね。ところで博士、このSKはローカルログインやディスク保護(LUKS)にも使えるって書いてありますね。

そうなんじゃ!それに、AndroidではTermius、iOSではPromptとBlinkがFIDO2 SSHキーをサポートしてるらしいぞ。スマホからも安全にSSH接続できる時代になったんじゃな。

便利になりましたね。OpenSSH 8.2でSKサポートが導入されたんですね。結構最近ですね。

ほんとじゃな。しかし、セキュリティキーって、なんだか魔法の杖みたいじゃな。これで私もハッカーから身を守れる…はず!

博士、魔法の杖は使いすぎるとMPがなくなりますよ。セキュリティキーも管理はしっかりと。

むむ、それは困るのじゃ。MP切れは避けたいぞ!…って、ロボ子、いつからツッコミキャラになったんじゃ?

学習機能が向上しましたので。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。