为了增加安全性,我需要私钥才能在我的 Ubuntu 服务器上使用 sudo。我已经为 sudo 添加了私钥身份验证,如下所述https://superuser.com/questions/164078/how-to-make-shared-keys-ssh-authorized-keys-and-sudo-work-together。我还尝试通过/etc/pam.d/sudo
如下方式读取来禁用基于密码的身份验证:
#%PAM-1.0
auth required pam_env.so readenv=1 user_readenv=0
auth required pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
auth [success=1 default=ignore] pam_ssh_agent_auth.so file=/etc/security/authorized_keys
auth requisite pam_deny.so
auth required pam_permit.so
auth optional pam_cap.so
@include common-account
@include common-session-noninteractive
它似乎有效,但我想检查一下以确保我没有忽视一个巨大的安全漏洞。另外,如果我尝试在没有私钥的情况下使用 sudo,它会在失败之前尝试 3 次:
Sorry, try again.
Sorry, try again.
Sorry, try again.
sudo: 3 incorrect password attempts
这不是什么大问题,但我每次都会收到一封安全警告电子邮件,所以最好只尝试一次。
答案1
您应该能够更改此设置:
auth [success=1 default=ignore] pam_ssh_agent_auth.so file=/etc/security/authorized_keys
对此:
auth [retry=1 success=1 default=ignore] pam_ssh_agent_auth.so file=/etc/security/authorized_keys