「One Time PassWord」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(→‎sshd の設定: 情報を更新)
37行目: 37行目:
   
 
=== sshd の設定 ===
 
=== sshd の設定 ===
  +
 
OTPW は SSH セッションでキーボードインタラクティブログインを使います。以下の行を {{ic|/etc/ssh/sshd_config}} に追加することで有効化できます:
 
OTPW は SSH セッションでキーボードインタラクティブログインを使います。以下の行を {{ic|/etc/ssh/sshd_config}} に追加することで有効化できます:
 
UsePAM yes
 
UsePAM yes
42行目: 43行目:
 
ChallengeResponseAuthentication yes
 
ChallengeResponseAuthentication yes
   
{{Note|{{ic|/etc/ssh/sshd_config}} に二重、あるは矛盾す設定行追加しないように注意してください。UsePAM 行が2行あるなどということにならないようにします。}}
+
静的パスワードによるログインも許可したい場合は、{{ic|/etc/ssh/sshd_config}} にような行が含まれていること確認してください。
  +
  +
{{hc|/etc/ssh/sshd_config|
  +
PasswordAuthentication yes
  +
}}
   
  +
それ以外の場合は、{{ic|no}} に設定します。{{ic|/etc/pam.d/sshd}} を編集して静的パスワード認証を完全に無効にする方法については、上記の情報を参照してください。そうしないと、OTPW が失敗した場合 (ユーザーがパスワードを使い果たした場合など)、PAM は静的パスワードを許可します。
静的なパスワードログインもできるようにしたい場合、{{ic|/etc/ssh/sshd_config}} に以下の行を記述してください:
 
PasswordAuthentication yes
 
パスワードログインをしない場合は、''no'' に設定してください。静的なパスワード認証を完全に無効化するには上で書いたように {{ic|/etc/pam.d/sshd}} を編集します。完全に無効化されていない場合、OTPW が失敗したとき (ユーザーがパスワードを使いきった場合など) に静的なパスワードが使えるようになります。
 
   
パスワード認証を許可してい場合ある認証方法失敗した後、SSH クライアントはの認証方法にフォールバックします。デフォルトでは、ログイン方法ごとに SSH は3回までパスワードを試すことができるようなっています
+
パスワード認証を許可一方の認証方法失敗した後、ssh クライアントはもう一方の認証方法にフォールバックします。デフォルトでは、ssh ではログイン方法ごとにパスワードの入力 3 回できること注意しください。
   
 
=== OTPW の設定 ===
 
=== OTPW の設定 ===

2023年11月1日 (水) 03:41時点における版

関連記事

One Time PassWord (OTPW) はシステムにログインするときに使い捨てのパスワードを使えるようにする PAM モジュールです。特に Secure Shell を使用する場合に、使い捨てのパスワードで公共・共有のコンピュータからログインできるようになるので便利です。一回使ったパスワードはもう使うことができなくなります。

以下では 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 を include します。静的なパスワード認証を無効化している場合、太字の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つパスワードを入力するように求めます。

ノート: Due to a bug in the way OpenSSH calls PAM, the ~/.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.