二要素認証
ワンタイムパスワードを使用した2要素認証
セキュリティ確保のため、通常のパスワード(Kerberos)に加えて、ワンタイムパスワード(OTP)を使用した2要素認証(2FA)の有効化を必須としています。
OTPトークン登録方法
前提
お持ちのスマートフォンに以下のような多要素認証用アプリをインストールください。
- Google Authenticator (Android, iOS)
- Microsoft Authenticator (Android, iOS)
- Aegis Authenticator (Android)
- Ente Auth (Android, iOS)
- FreeOTP Authenticator (Android, iOS)
使用する端末(ターミナル)はOS付属の物をご利用ください。 具体的には以下の物です。
- ターミナル (Mac)
- Windows Terminal (Windows)
- Gnome-terminal (Linux)
これら以外の物をご利用頂いた場合(xterm, TeraTermなど)、登録用のQRコードが正しく表示されない場合があります。
手順
- ログインノードへログインします
- ログインノード上で
kinitコマンドを実行します。パスワード入力を促されるので、パスワードを入力してください ipa otptoken-addコマンドを実行します- 以下のようにQRコードが表示されますので、QRコードを多要素認証用アプリで読み取ります
OTPトークンを登録すると、直ちに2FAが有効化されます。
Note
QRコードが正しく表示されず、アプリで読み取れなかった場合はOTPトークンの削除をしてから再度登録を実施してください。
もし、ssh接続を切ってしまったなどでご自身でのトークン削除ができなくなってしまった場合は管理者までご連絡ください。
OTPトークン削除方法
未使用なものや登録に失敗した OTP トークンを削除したい場合は以下の手順で削除を実施ください。
手順
- ログインノードへログインします
-
ログインノード上で
kinitコマンドを実行します。パスワードとOTP入力を促されるので、入力くださいNote
OTPトークン登録失敗したての場合は、kinitの実行はスキップ可能です
-
ipa otptoken-findコマンドを実行して、登録されているOTPトークンの一覧を取得しますe.g. test@login01 ~ $ ipa otptoken-find -------------------- 3 OTP tokens matched -------------------- Unique ID: 280a69e8-f659-4b94-8c02-17186fb47035 Type: TOTP Owner: test Unique ID: 70adb316-1bbc-476a-8b39-ba748b932333 Type: TOTP Owner: test Unique ID: f1763a49-b359-4b97-bd47-074c73d5d825 Type: TOTP Owner: test ---------------------------- Number of entries returned 3 ---------------------------- -
ipa otptoken-del <OTPトークンの Unique ID>コマンドを実行して、削除したいOTPトークンを削除してくださいe.g. test@login01 ~ $ ipa otptoken-del 280a69e8-f659-4b94-8c02-17186fb47035 -------------------------------------------------------- Deleted OTP token "280a69e8-f659-4b94-8c02-17186fb47035" --------------------------------------------------------Note
OTPトークンのUnique ID は、通常は多要素認証用アプリに書かれています。アプリを確認して削除対象の物を弁別ください。
2FAログイン方法
ログインノードへログインする方法はこちらをご覧ください。
kinit, kpasswd ラッパー
kinit(/bin/kinit)とkpasswd(/bin/kpasswd)コマンドは、2FAが有効な状態ではコマンド実行に失敗するなどの既知の問題があります。
問題が起きないように処置を施した/usr/local/bin/kinitと/usr/local/bin/kpasswdというラッパーをログインノードに用意しています。
通常(フルパスを指定せず)、kinitコマンドを使用している場合はラッパーが使用されるため、特別な対処は不要です。
直接 /bin/kinitと/bin/kpasswdを指定してコマンドを実行されている場合は、それぞれ/usr/local/bin/kinit、/usr/local/bin/kpasswdへパスを変更してください。
携帯電話(OTPトークン)紛失時
OTPトークンを登録した多要素認証用アプリがインストールされているスマートフォンを紛失されたなどでOTPを取得できなくなった時は、 管理者までご連絡ください。
登録されているOTPトークンを削除いたします。
Note
紛失されていない物も含めて、アカウントに登録されている全てのトークンが削除されます
OTPトークン削除によってパスワードのみでログインノードにログイン可能になります。 もし、ログインプロンプトでOTPの入力を促された場合は、OTPを何も入力せずにエンターキーを押下してください。
ログイン確認後、可能な限り早くOTPトークンを再登録してください。
Note
一定期間経過してもOTPトークンを再登録頂けない場合は、アカウントをロックします
コントロールマスター
コントロールマスターを使うと、2回目以降のSSH接続で、最初の接続が再利用されるようになります。このため、2回目以降は認証が不要になります。また、一度目と同じノードにログインすることになります。
Note
Windows組み込みのopensshではコントロールマスターは利用できません。WSL2のopensshを利用してください。
準備
準備として、接続元(例えば個人のノートPC)で以下のようにSSHの設定をします。LinuxやMacの場合は~/.ssh/configを編集します。
Match Host login*.icepp.jp
ServerAliveInterval 100
ControlPath ~/.ssh/%r@%h:%p
ControlMaster auto
ControlPersist 1m
使い方 (コントロールマスターを自動的に開始する場合)
一度目の接続は、
のようにすることで、認証の後にバックグラウンド実行になります。二度目以降は、
とします。使い方 (コントロールマスターを手動で開始する場合)
ControlMasterの設定をautoaskにすると、sshに-Mをつけることでコントロールマスターを開始することになります。この場合、1回目の接続は
コントロールマスターの停止
実行中のコントロールマスターをチェックするには ssh -O check login.icepp.jp、
停止するにはssh -O exit login.icepp.jp とします。
© 2024 ICEPP, the University of Tokyo. Reproduction of the article, figures and tables on this page is allowed as specified in the CC-BY-4.0 license.
