pam_ssh_agent_auth: ssh user@host を使用する sudo にはパスワードが必要ですが、ssh user@host 'bash' にはパスワードは必要ありません。

pam_ssh_agent_auth: ssh user@host を使用する sudo にはパスワードが必要ですが、ssh user@host 'bash' にはパスワードは必要ありません。

ssh-agentを管理するためにgpg-agentを使用します。

マイコンピュータから:ssh-add -Lサーバーで使用されている公開鍵を印刷します。ForwardAgent開けました。pam.d/sudoそしてsudoers構成されました。

次に、ssh user@hostgpg echo $SSH_AUTH_SOCK-agentのいずれかを印刷します。 runsudo -iまたは他のコマンドを使用すると、sudoパスワードを求められます。

ssh user@host 'bash'別のシェルを使用すると、sudoパスワードを要求せずに実行できます。ただし、この方法ではシェルから次のプロンプトを印刷しません$

ログの設定pam.d/sudoauth ... debugインポート:

Nov 10 16:46:23 nixos sudo[30150]: pam_ssh_agent_auth: Beginning pam_ssh_agent_auth for user vonfry
Nov 10 16:46:23 nixos sudo[30150]: pam_ssh_agent_auth: Attempting authentication: `vonfry' as `vonfry' using ~/.ssh/authorized_keys:~/.ssh/authorized_keys2:/etc/ssh/authorized_keys.d/%u
Nov 10 16:46:23 nixos sudo[30150]: pam_ssh_agent_auth: Contacted ssh-agent of user vonfry (1000)
Nov 10 16:46:23 nixos gpg-agent[4022]: scdaemon[4022]: pcsc_establish_context failed: no service (0x8010001d)
Nov 10 16:46:23 nixos sudo[30150]: pam_ssh_agent_auth: Failed Authentication: `vonfry' as `vonfry' using ~/.ssh/authorized_keys:~/.ssh/authorized_keys2:/etc/ssh/authorized_keys.d/%u

サーバーでは、gpg-agenthtopは私のSSHログインユーザーが所有するhtopにリストされてgpg-connect-agent動作します。TTYそしてGPG_TTYそれは同じです。

htopgpg-agent子プロセスがあることを示します。scdaemon --multi-server

私は周りを検索してみましたが、gpg-agent[4022]: scdaemon[4022]: pcsc_establish_context failed: no service (0x8010001d)役に立つものが見つかりませんでした。

EDIT1:SSHにログインしたユーザーに対してgpg-agentデーモンを終了すると、sudoはパスワードなしで機能します。

ベストアンサー1

SSH_AUTH_SOCK私の対話型シェルスクリプトがsshdの元の変数を上書きする変数を再エクスポートする理由を見つけました。

おすすめ記事