web-dev-qa-db-ja.com

ssh-agentに正常に接続した後、PAMがSudoの認証に失敗する

14.04.1-UbuntuサーバーLTSでのssh-agentを使用したPAM Sudo認証のセットアップ。

それでも、PAMを使用して、ssh-agent経由でSudoを正常に認証できません。

これが私の関連する/var/log/auth.logエントリです...

Jun 17 11:31:16 Host Sudo[21318]: pam_ssh_agent_auth: Beginning pam_ssh_agent_auth for user userName
Jun 17 11:31:16 Host Sudo[21318]: pam_ssh_agent_auth: Attempting authentication: `userName' as `userName' using /etc/security/authorized_keys
Jun 17 11:31:16 Host Sudo[21318]: pam_ssh_agent_auth: Contacted ssh-agent of user userName (1000)
Jun 17 11:31:16 Host Sudo[21318]: pam_ssh_agent_auth: Failed Authentication: `userName' as `userName' using /etc/security/authorized_keys

ご覧のとおり、ssh-agentに正常に接続しますが、認証は失敗します。 PAMは次の認証方法にフォールバックし、Sudo/userNameパスワードを要求すると、続行できます。 Sudoを介して許可されたキーで接続する限り、sshパスワードを必要としないように構成しようとしています。

関連するファイルとその内容は次のとおりです。

/ etc/pam.d/Sudo

#%PAM-1.0

auth       sufficient pam_ssh_agent_auth.so file=/etc/security/authorized_keys debug
auth       required   pam_env.so readenv=1 user_readenv=0
auth       required   pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0

@include common-auth
@include common-account
@include common-session-noninteractive

/ etc/security/authorized_keysファイル情報:このファイルには4つのssh-rsa公開鍵が含まれています。

-rw-r--r-- 1 root root 1597 Jun 16 16:07 /etc/security/authorized_keys

/ etc/sudoers

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#

Defaults        env_keep += SSH_AUTH_SOCK

Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group Sudo to execute any command
%Sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

そして、正気のために、SSH_AUTH_SOCKが実際に「Sudoチェーンに渡されている」ことがわかります...

printenv | grep SSH

SSH_AUTH_SOCK=/tmp/ssh-m9Ume3GOIP/agent.15964

Sudo printenv | grep SSH

SSH_AUTH_SOCK=/tmp/ssh-m9Ume3GOIP/agent.15964

私はサーバーにsshで

ssh -A Host@ip_address

役立つ可能性のあるその他の情報を含めます。質問してください:)

私は1日以上この場所にいて、Sudoキーを使用してPAM ssh認証をセットアップするための数十の「ハウツー」を見つけました、そしてそれらはすべて類似しています...しかし、光るかもしれないものを見つけることができませんssh-agentとの接続/通信に成功した後、PAM認証が失敗する理由について。

前もって感謝します!

[〜#〜]更新[〜#〜]

クライアント側のssh-addがトリックでした。私は「SSHパワーユーザー」ではありませんが、根本的な原因を解明するために必要な情報が得られます。ありがとう!

3

構成は問題ありませんが、Sudo操作を許可するには、ssh-agentにいくつかのIDが必要です。を使用して、エージェントがいくつかのIDを持っていることを確認できます

ssh-add -L

エージェントの公開鍵を出力し、そのうちの少なくとも1つが/etc/security/authorized_keysのサーバーの公開鍵と一致する必要があります。

エージェントにIDがない場合は、コンピューターにIDを追加する必要があります。

ssh-add [path/to/key]

プロンプトが表示されたら、パスフレーズを挿入します。

3
Jakuje