ProxmoxVE 4.2のログインにワンタイムパスワードによる二要素認証を設定する

ここのとこワンタイムパスワードについていろいろ設定してるのだけど、どうやらProxmox VEでもOTPによる二要素認証が設定ができるようだ。
というわけで、試しに設定してみることにした。

設定方法は簡単。
[データセンター]から[認証]タブを選択し、ワンタイムパスワードを定義する認証方法(今回はpam)の設定画面を開く。
で、[TFA]の設定値を「OATH」と指定する。

次に、Proxmox VEのコンソール画面で以下のコマンドを実行し、ワンタイムパスワードのキーを生成する。

oathkeygen
root@BS-PHY-MICROSERVER-01:~# oathkeygen
ORQOZ7ZBEOPWDXAY

Proxmoxの管理画面を再度開き、[データセンター] > [ユーザ]タブからワンタイムパスワード認証をさせるユーザを選択し、生成したキーを[Key IDs]に入力する。

あとは、再度ログインする際に今までのID/PWとワンタイムパスワードの入力をするだけだ。

ワンタイムパスワードは、以下のようにコンソール上でコマンドを実行することで求めることが可能だ。

oathtool --totp -b シークレットキー

iPhoneやAndroidなどでいいツールがあればいいが、今のところiPhoneではよさげなアプリが見つからず、自分の環境ではoathtoolコマンド以外見つからなかった。
何であれ、これでワンタイムパスワードログインができるようになった。


2016/12/28 追記

なお、ワンタイムパスワードのトークンをなくすなどして、ログインできなくなった場合。
sshでログインできるようであれば、「/etc/pve/user.cfg」にワンタイムパスワードのシークレットキーなどが記述されているので、そこからワンタイムパスワードを生成してやるといいだろう。

「もうそもそもワンタイムパスワード自体いらないんじゃー!無効化したい!」という場合は、「/etc/pve/domains.cfg」で以下の行を削除してしまえばいい。

/etc/pve/domains.cfg

pve: pve
        comment Proxmox VE authentication server

pam: pam
        comment Linux PAM standard authentication
        tfa type=oath,digits=8