VMware Workstationを使ったWindows上のLinux仮想マシンにYubiKeyを接続する方法を整理します。
はじめに
こんにちは、@bioerrorlogです。
VMware Workstationを使ったWindows上のLinux仮想マシン(Ubuntu)にYubikeyを接続しようとしたところ、次のエラーが出て接続できませんでした。
Yubico.com YubiKey OTP+FIDO+CCID をこの仮想マシンに接続できません。ホストは入力のためにこのデバイスを必要としています。
この問題を解決し、Linux仮想マシン上でYubikeyを使う方法をまとめます。
作業環境
こちらの手順に従って構築したWindows10上のUbuntu仮想マシンで作業しています。
- Windows 10
- VMware Workstation 15 Player
- Ubuntu 20.04
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.3 LTS Release: 20.04 Codename: focal
Linux仮想マシンでYubiKeyを使う
.vmx ファイルを編集
まず、仮想マシンとVMware Workstationをシャットダウンした状態で .vmxファイルに以下の2行を追加します。 .vmxファイルは、仮想マシンイメージのインストールディレクトリに配置されています。
usb.generic.allowHID = "TRUE" usb.generic.allowLastHID = "TRUE"
編集したら.vmxファイルを保存し、仮想マシンを起動します。
仮想マシン上でYubikeyを接続
仮想マシンが起動したら、下画像のように設定タブからYubikeyを接続します。
"Shared Yubico Yubikey..."の方ではなく、"Yubico.com Yubikey..."の方を選択することに注意してください。
- Player(P)
- 取り外し可能デバイス(R)
- Yubico.com Yubikey...
- 接続 (ホストから切断) (C)
その後表示されるウィンドウメッセージには、そのままOKを押していきます。
Yubikeyの接続を確認
ここまでくれば、YubikeyがLinux仮想マシン上で使えるようになっています。
接続できていることをlsusb
コマンドで確認してみましょう。
$ lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 004: ID 1050:0407 Yubico.com Yubikey 4 OTP+U2F+CCID Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Yubico.com Yubikey...
の記載があります。
これで、Yubikeyが仮想マシンに接続できました。
おわりに
今回は、Linux仮想マシンにYubiKeyを接続する方法を整理しました。
元々のモチベーションとして、DfinityのInternet Identityをローカルで動かしたい、でもYubikeyが仮想マシンで認識されない!という状況がありました。
実のところのモチベーションは、
— BioErrorLog (@bioerrorlog) October 10, 2021
・CanCanをローカル実行したい
・それにはInternet Identityをローカル実行する必要あり
・自分の開発環境(Linux仮想マシン)で認証方法がなさそう
・この機会にYubikeyを買おう! https://t.co/seGN8Mm1bJ
思った以上にYubikey接続問題にハマってしまい、この備忘録を書くに至ります。
最終的な解決策はシンプルでした。
後世の参考になれば幸いです。
[関連記事]
参考
Unable to get yubikey neo u2f working in Linux inside of VMWare Workstation - Super User