已配置SSH密钥登录的新用户执行sudo仍需输入密码的问题求助
已配置SSH密钥登录的新用户执行sudo仍需输入密码的问题求助
嗨,我懂你的困扰——SSH密钥登录和sudo免密是两个独立的配置逻辑,所以哪怕你搞定了密钥登录,sudo还是会默认要求密码验证。别担心,咱们几步就能解决这个问题:
方法一:让整个sudo组的用户都免密执行sudo
这是最常用的方案,毕竟你已经把新用户加入了sudo组:
- 先用拥有sudo权限的用户(比如初始root或你的管理员账号)登录服务器,执行下面的命令编辑sudo配置文件(务必用visudo,它会自动检查语法错误,避免误操作导致sudo失效):
sudo visudo - 在文件里找到这一行默认配置:
%sudo ALL=(ALL:ALL) ALL - 修改为:
%sudo ALL=(ALL:ALL) NOPASSWD:ALL - 保存退出(如果用的是nano编辑器,按
Ctrl+O保存,Ctrl+X退出)。
方法二:仅给特定新用户开启sudo免密
如果你不想让所有sudo组用户都免密,只想给这个新用户单独开权限,就在visudo文件末尾添加一行:
your-new-username ALL=(ALL:ALL) NOPASSWD:ALL
把your-new-username替换成你实际的新用户名即可。
验证配置是否生效
切换到你的新用户,执行一个需要sudo权限的命令测试,比如:
sudo ls /root
如果不用输入密码就能正常执行,说明配置已经生效啦!
⚠️ 小提醒:sudo免密会赋予用户极高的系统权限,一定要确保这个用户是完全可信的,避免带来服务器安全风险哦。
备注:内容来源于stack exchange,提问作者Duke




