「One Time PassWord」の版間の差分
(ページの作成:「Category:Secure Shell en:One Time PassWord {{Related articles start}} {{Related|Secure Shell}} {{Related|S/KEY 認証}} {{Related|Pam abl}} {{Related|Google Authe...」) |
Kusanaginoturugi (トーク | 投稿記録) |
||
(2人の利用者による、間の6版が非表示) | |||
1行目: | 1行目: | ||
− | [[Category: |
+ | [[Category:セキュアシェル]] |
+ | [[cs:One Time PassWord]] |
||
[[en:One Time PassWord]] |
[[en:One Time PassWord]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|Secure Shell}} |
{{Related|Secure Shell}} |
||
− | {{Related|S/KEY 認証}} |
||
{{Related|Pam abl}} |
{{Related|Pam abl}} |
||
{{Related|Google Authenticator}} |
{{Related|Google Authenticator}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
− | + | [https://www.cl.cam.ac.uk/~mgk25/otpw.html One Time PassWord (OTPW)] は、システムへのログインに使い捨てパスワードを使用できるようにする [[PAM]] モジュールです。これは [[Secure Shell]] のコンテキストで特に便利で、ユーザーは二度と機能しない 1 回限りのパスワードを使用して公共または共有のコンピュータからログインできます。 |
|
以下では OTPW をインストールして SSH を設定することで OTPW ログインをできるようにする方法を説明します。 |
以下では OTPW をインストールして SSH を設定することで OTPW ログインをできるようにする方法を説明します。 |
||
== インストール == |
== インストール == |
||
+ | |||
AUR から {{AUR|otpw}} パッケージをインストールしてください。 |
AUR から {{AUR|otpw}} パッケージをインストールしてください。 |
||
== SSH ログインの設定 == |
== SSH ログインの設定 == |
||
+ | |||
=== PAM の設定 === |
=== PAM の設定 === |
||
+ | |||
otpw の PAM 設定ファイルを作成: |
otpw の PAM 設定ファイルを作成: |
||
+ | |||
{{hc|/etc/pam.d/ssh-otpw| |
{{hc|/etc/pam.d/ssh-otpw| |
||
auth sufficient pam_otpw.so |
auth sufficient pam_otpw.so |
||
23行目: | 27行目: | ||
}} |
}} |
||
− | 次に、sshd の PAM |
+ | 次に、sshd の PAM 構成を変更して otpw を含めます。静的パスワード認証 ({{ic|auth}}) を無効にする場合は、2 番目の太字行をコメントアウトします。参考までに、変更された {{ic|/etc/pam.d/sshd}} を次に示します。 |
+ | |||
{{hc|/etc/pam.d/sshd| |
{{hc|/etc/pam.d/sshd| |
||
#%PAM-1.0 |
#%PAM-1.0 |
||
36行目: | 41行目: | ||
=== sshd の設定 === |
=== sshd の設定 === |
||
+ | |||
OTPW は SSH セッションでキーボードインタラクティブログインを使います。以下の行を {{ic|/etc/ssh/sshd_config}} に追加することで有効化できます: |
OTPW は SSH セッションでキーボードインタラクティブログインを使います。以下の行を {{ic|/etc/ssh/sshd_config}} に追加することで有効化できます: |
||
UsePAM yes |
UsePAM yes |
||
41行目: | 47行目: | ||
ChallengeResponseAuthentication yes |
ChallengeResponseAuthentication yes |
||
− | + | 静的パスワードによるログインも許可したい場合は、{{ic|/etc/ssh/sshd_config}} に次のような行が含まれていることを確認してください。 |
|
+ | {{hc|/etc/ssh/sshd_config| |
||
− | 静的なパスワードログインもできるようにしたい場合、{{ic|/etc/ssh/sshd_config}} に以下の行を記述してください: |
||
− | + | PasswordAuthentication yes |
|
+ | }} |
||
− | パスワードログインをしない場合は、''no'' に設定してください。静的なパスワード認証を完全に無効化するには上で書いたように {{ic|/etc/pam.d/sshd}} を編集します。完全に無効化されていない場合、OTPW が失敗したとき (ユーザーがパスワードを使いきった場合など) に静的なパスワードが使えるようになります。 |
||
+ | それ以外の場合は、{{ic|no}} に設定します。{{ic|/etc/pam.d/sshd}} を編集して静的パスワード認証を完全に無効にする方法については、上記の情報を参照してください。そうしないと、OTPW が失敗した場合 (ユーザーがパスワードを使い果たした場合など)、PAM は静的パスワードを許可します。 |
||
− | パスワード認証を許可している場合、ある認証方法で失敗した後、SSH クライアントは他の認証方法にフォールバックします。デフォルトでは、ログイン方法ごとに SSH は3回までパスワードを試すことができるようになっています。 |
||
+ | |||
+ | パスワード認証を許可すると、一方の認証方法に失敗した後、ssh クライアントはもう一方の認証方法にフォールバックします。デフォルトでは、ssh ではログイン方法ごとにパスワードの入力を 3 回試行できることに注意してください。 |
||
=== OTPW の設定 === |
=== OTPW の設定 === |
||
58行目: | 66行目: | ||
== 使用方法 == |
== 使用方法 == |
||
+ | |||
以上の設定をしたら、OTPW を設定したユーザーでは ssh は自動的に OTPW を使用します。OTPW のログインプロンプトは以下のようになります: |
以上の設定をしたら、OTPW を設定したユーザーでは ssh は自動的に OTPW を使用します。OTPW のログインプロンプトは以下のようになります: |
||
Password 041: |
Password 041: |
||
70行目: | 79行目: | ||
そのときはプレフィックスと、要求されている3つのパスワードを順番通りに入力してください。ログインが開始されると、OTPW は {{Ic|~/.otpw.lock}} というファイルを作成して同時ログインを検出します。このファイルが存在しているのに新しいログインが開始されたとき、OTPW は3つパスワードを入力するように求めます。 |
そのときはプレフィックスと、要求されている3つのパスワードを順番通りに入力してください。ログインが開始されると、OTPW は {{Ic|~/.otpw.lock}} というファイルを作成して同時ログインを検出します。このファイルが存在しているのに新しいログインが開始されたとき、OTPW は3つパスワードを入力するように求めます。 |
||
+ | {{Note |1=OpenSSH が PAM を呼び出す方法にある [https://bugzilla.mindrot.org/show_bug.cgi?id=632 バグ] のため、{{Ic|~/.otpw.lock}} ファイルは、ユーザーが Ctrl-C などを使用して SSH ログインをキャンセルすると、これ以降、OTPW は常に 3 つのパスワードを要求します。バグは修正済みとマークされていますが、依然として影響を受けています。回避策として、ロックファイルを手動で削除するだけで、OTPW は通常の単一パスワード要求を再開します。}} |
||
− | {{Note |1= Due to a [https://bugzilla.mindrot.org/show_bug.cgi?id=632 bug] in the way OpenSSH calls PAM, the {{Ic|~/.otpw.lock}} file will not be deleted if the user cancels an SSH login using Ctrl-C or the like, and OTPW will always ask for triple passwords after this. The bug is marked as fixed, but it still affects me. As a workaround, one may simply delete the lock file manually, and OTPW will resume normal single-password requests.}} |
2024年8月16日 (金) 18:36時点における最新版
One Time PassWord (OTPW) は、システムへのログインに使い捨てパスワードを使用できるようにする PAM モジュールです。これは Secure Shell のコンテキストで特に便利で、ユーザーは二度と機能しない 1 回限りのパスワードを使用して公共または共有のコンピュータからログインできます。
以下では OTPW をインストールして SSH を設定することで OTPW ログインをできるようにする方法を説明します。
インストール
AUR から otpwAUR パッケージをインストールしてください。
SSH ログインの設定
PAM の設定
otpw の PAM 設定ファイルを作成:
/etc/pam.d/ssh-otpw
auth sufficient pam_otpw.so session optional pam_otpw.so
次に、sshd の PAM 構成を変更して otpw を含めます。静的パスワード認証 (auth
) を無効にする場合は、2 番目の太字行をコメントアウトします。参考までに、変更された /etc/pam.d/sshd
を次に示します。
/etc/pam.d/sshd
#%PAM-1.0 #auth required pam_securetty.so #disable remote root auth include ssh-otpw #auth include system-remote-login #NOTE: This must be disabled to completely disable password logins. account include system-remote-login password include system-remote-login session include system-remote-login
sshd の設定
OTPW は SSH セッションでキーボードインタラクティブログインを使います。以下の行を /etc/ssh/sshd_config
に追加することで有効化できます:
UsePAM yes UsePrivilegeSeparation yes ChallengeResponseAuthentication yes
静的パスワードによるログインも許可したい場合は、/etc/ssh/sshd_config
に次のような行が含まれていることを確認してください。
/etc/ssh/sshd_config
PasswordAuthentication yes
それ以外の場合は、no
に設定します。/etc/pam.d/sshd
を編集して静的パスワード認証を完全に無効にする方法については、上記の情報を参照してください。そうしないと、OTPW が失敗した場合 (ユーザーがパスワードを使い果たした場合など)、PAM は静的パスワードを許可します。
パスワード認証を許可すると、一方の認証方法に失敗した後、ssh クライアントはもう一方の認証方法にフォールバックします。デフォルトでは、ssh ではログイン方法ごとにパスワードの入力を 3 回試行できることに注意してください。
OTPW の設定
OTPW の設定は各ユーザーアカウントごとに行います。指定されたアカウントで OTPW が設定されていない場合、そのアカウントは通常通りに静的なパスワードを使うようになります。あるアカウントで OTPW を設定するには、そのユーザーで次のコマンドを実行します:
$ otpw-gen > ~/otpw_passwords
otpw-gen
はパスワードプレフィックスの入力を要求します。パスワードプレフィックスは全ての OTPW パスワードの最初に付けて入力するものです。誰かが OTPW のリストを入手したとしても、プレフィックスを知っていないとリストを使ってアカウントにログインできないようになります。
上記のコマンドの実行後、ユーザーのホームディレクトリに otpw_passwords
という名前のファイルが作成され、ユーザーの OTPW パスワードが保存されます。~/.otpw
というファイルも作成され、こちらにはパスワードのハッシュが保存されます。otpw_passwords
は印刷して、ログイン時に見るようにしてください。
使用方法
以上の設定をしたら、OTPW を設定したユーザーでは ssh は自動的に OTPW を使用します。OTPW のログインプロンプトは以下のようになります:
Password 041:
ログインするには、otpw_passwords
リストのパスワード 41 を見て下さい。例:
041 lYr0 g7QR
プレフィックスの後に上記の2つのパスワードを入力します。空白はあくまでパスワードを見やすくするためにあるだけで、実際にパスワードを入力するときは空白を付けても付けなくてもかまいません。プレフィックスと使い捨てパスワードの間に空白は入れないで下さい。
使用したいログイン方法を ssh クライアントに指定したいときは、OTPW を使用するときは -o PreferredAuthentication=keyboard-interactive
を追加、静的なパスワードを使用するときは -o PreferredAuthentication=password
を追加します。これらのオプションは ~/.ssh/config
でサーバーごとに指定することもできます。
誰かが OTPW を覗き見して、あなたがログインする前に素早くアカウントにログインされてしまうことを防ぐために、同時ログインがされたとき OTPW は3つパスワードを入力することを要求します。通常は3つ要求されることはありませんが、万が一 OTPW が以下のようなプロンプトを表示した場合:
Password 072/251/152:
そのときはプレフィックスと、要求されている3つのパスワードを順番通りに入力してください。ログインが開始されると、OTPW は ~/.otpw.lock
というファイルを作成して同時ログインを検出します。このファイルが存在しているのに新しいログインが開始されたとき、OTPW は3つパスワードを入力するように求めます。