1. ホーム
  2. ssh

[解決済み] pam_unix(sudo:auth): 会話に失敗、auth が [username] のパスワードを特定できなかった

2022-02-18 01:39:47

質問

を使っています。 アニシブル を使用して、Centos 7 produciton clusterをプロビジョニングしています。残念ながら、以下のコマンドを実行すると ansible Tiemout と Linux Pluggable Authentication Modules ( パム ) error conversation failed .

ansible コマンドは、仮想ラボのMADから実行してもうまくいきます。 浮浪者 ボックスを使用します。

Ansibleコマンド

$ ansible master_server -m yum -a 'name=vim state=installed' -b -K -u lukas -vvvv
123.123.123.123 | FAILED! => {
    "msg": "Timeout (7s) waiting for privilege escalation prompt: \u001b[?1h\u001b=\r\r"
}


SSHdログ

# /var/log/secure
Aug 26 13:36:19 master_server sudo: pam_unix(sudo:auth): conversation failed
Aug 26 13:36:19 master_server sudo: pam_unix(sudo:auth): auth could not identify password for [lukas]

解決方法は?

問題が見つかりました。それは PAMの オーサー モジュール問題!?どのように解決に至ったかを説明します。

コンテキスト

デバッグ用にマシンをセットアップした。つまり、ターミナルウィンドウを4つ開いた状態だ。

  • 第1ターミナル (ローカルマシン): ここで、私は以下を実行していました。 ansible prduction_server -m yum -a 'name=vim state=installed' -b -K -u username
  • 第2ターミナル (本番サーバ): ここで、以下を実行しました。 journalctl -f (システム全体のログ)。
  • 第3ターミナル (本番サーバー): ここで、私は tail -f /var/log/secure (sshdのログ)。
  • 第4ターミナル (本番サーバー): ここで、私は編集していました。 vi /etc/pam.d/sudo ファイルを作成します。

からコマンドを実行するたびに 第1ターミナル こんなエラーが出ました。

# ansible error - on local machine
Timeout (7s) waiting for privilege escalation prompt error.

# sshd error - on remote machine
pam_unix(sudo:auth): conversation failed
pam_unix(sudo:auth):  [username]

同僚に設定を全部見せたところ、このエラーは "PAM"。 . 正直なところ、私は、そのようなことを初めて知りました。 PAM . だから、私はこれを読まなければならなかった PAMチュートリアル . 私は、このエラーは 認証 インターフェースは /etc/pam.d/sudo モジュールを使用します。インターネットで調べてみると、次のようなものが見つかりました。 pam_permit.so モジュールに sufficient フラグを設定することで、私の問題は解決しました。

解決方法

基本的に、私が追加したものは auth sufficient pam_permit.so の行から /etc/pam.d/sudo ファイルを作成します。以下の例を見てください。

$ cat /etc/pam.d/sudo
#%PAM-1.0
# Fixing ssh "auth could not identify password for [username]"
auth       sufficient   pam_permit.so

# Below is original config
auth       include      system-auth
account    include      system-auth
password   include      system-auth
session    optional     pam_keyinit.so revoke
session    required     pam_limits.so
session    include      system-auth

おわりに

この解決策にたどり着くまで、4日間を費やしました。私の場合、以下のような、うまくいかない解決策に何十回も出くわしました。 ansible hosts/config ファイルに sudo パスワードが重複している。 , ldap固有の設定です。 いつも不機嫌なシステム管理者からアドバイスを受けることができます。

注意

私はPAMの専門家ではないので、この修正がシステムの他の側面に影響を与えるかどうかはわかりません。したがって、このコードをやみくもにコピーペーストすることには注意が必要です もしあなたがPAMの専門家であれば、代替の解決策や意見を教えてください。ありがとうございます。