YubiKeyとSSH – FreeBSD

macOS Ubuntu に続いてFreeBSD12でed25519-sk鍵タイプを試していきます。

Contents

FreeBSD: 準備

YubiKeyの選択の仕方は前置きをご覧ください。青いYubiKeyでもFIDO U2FかFIDO2の機能があれば使えるはずです。今回は主にfirmware 5.2.4の青いSecurity Keyシリーズで確認しています。5.2.3未満の場合はecdsa-skでお試しください。 ecdsa-skはP-256楕円曲線だけなので使う理由があるのかは謎です。

2022-09-27追記: FreeBSD 13.1でbaseが-sk対応になったので、以下のportsの作業は不要です。

FreeBSD 13でもbaseのOpenSSHのバージョンが-sk非対応のバージョンなので、さくっとportsの security/openssh-portable を使います。FIDO_U2Fオプションがあり、チェックを付けた場合はlibfido2もインストールされました。

普段使い用にはaliasするくらいがちょうどよいでしょうか。

YubiKeyを見つけてもらえません。

FreeBSD: クライアント側準備

ktraceであたりをつけると /dev/uhid の権限のようなのでスーパーユーザ権限では表示されることを確認したのち /etc/devfs.rules を作成します。

devfsを再実行し、 operatorグループにYubiKeyを使うユーザを追加します。

ログインしなおして再確認します。

良さそうです。

FreeBSD: クライアント側

クライアント側を整えていきます。

まずYubiKeyのFIDO2 PINを訊かれます。入力するとピカピカ光ってタッチを要求されます。タッチすると鍵情報を保存するファイル名を訊かれます。入力すると鍵情報ファイルを暗号化するためのパスフレーズを訊かれます。このパスフレーズは-O residentを指定した場合のYubiKey内の鍵情報には適用されません。あくまでもファイル(ここでは鍵ハンドルが格納されている~/.ssh/id_ed25519_sk)の暗号化のためのものです。今回はFIDO2の-O verify-required も含めて-Oオプションは指定しないで進行します。

デスクトップ環境で使うことがなくなってしまったので、素のssh-agentの使い方です。GNOMEであればUbuntuと同様、そのほかのwindow managerであれば /etc/Xsession.d/ からssh-agentやその代替が起動しているかと思うので、適宜調整してください。

FreeBSD: サーバ側

公開鍵をサーバまで持っていきログインするユーザの ~/.ssh/authorized_keys に追加、無ければ作成して追加します。

設定はこれだけ。同じ機械でSSHサーバも動作させる場合はパスワードでのログインを無効、スーパーユーザーのログインを無効、など適切に設定してください。HostKeyを明示している場合はEd25519用の鍵を明示します。portsのsshdを使う場合は混乱しないようにbaseのsshdを止めた方がよいかもしれません。お好みのrc.confの修正方法で sshd_enable=”NO” と openssh_enable=”YES” で自動起動を設定します。 

FreeBSD: 接続

接続です。

まず鍵ハンドルファイルのパスワードを訊かれ、入力するとYubiKeyがピカピカし始めるので、タッチすればログインできます。念のため繰り返して、再度パスワードを訊かれることを確認しました。続いてssh-agentを試します。

ssh-add した際に訊かれたパスワードを最後に、あとはしれっとYubiKeyが点滅するのでタッチするだけです。試すまでもなくFIDO2のdiscoverable credentialsもUbuntu同様当たり前のように使えるかと思います。

以上 macOS Ubuntu に続いてFreeBSDでした。次はCygwinです。ごきげんよう。

コメントを残す

メールアドレスが公開されることはありません。