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パワーユーザー」ではありませんが、根本的な原因を解明するために必要な情報が得られます。ありがとう!
構成は問題ありませんが、Sudo
操作を許可するには、ssh-agent
にいくつかのIDが必要です。を使用して、エージェントがいくつかのIDを持っていることを確認できます
ssh-add -L
エージェントの公開鍵を出力し、そのうちの少なくとも1つが/etc/security/authorized_keys
のサーバーの公開鍵と一致する必要があります。
エージェントにIDがない場合は、コンピューターにIDを追加する必要があります。
ssh-add [path/to/key]
プロンプトが表示されたら、パスフレーズを挿入します。