根据您的需求,我将介绍几种移除或禁用服务器密码验证的方法。重要提醒:在操作前请确保已配置备用登录方式(如SSH密钥),否则可能导致无法登录服务器!
一、禁用SSH密码登录(推荐)
编辑SSH配置文件 sudo nano /etc/ssh/sshd_config
找到并修改以下参数:
禁用密码认证 PasswordAuthentication no 启用密钥认证(确保此项为yes) PubkeyAuthentication yes 可选:禁用空密码 PermitEmptyPasswords no
Ubuntu/Debian sudo systemctl restart ssh CentOS/RHEL sudo systemctl restart sshd 旧版本系统 sudo service ssh restart
二、移除特定用户密码
锁定用户密码 sudo passwd -l 用户名 解锁(需要时) sudo passwd -u 用户名
删除密码(不推荐,存在安全风险) sudo passwd -d 用户名
三、配置免密sudo(特定命令)
sudo visudo
添加以下内容(示例):
允许用户执行特定命令无需密码 用户名 ALL=(ALL) NOPASSWD: /bin/systemctl restart nginx 用户名 ALL=(ALL) NOPASSWD: /usr/bin/apt update 或允许所有命令无需密码(谨慎使用) 用户名 ALL=(ALL) NOPASSWD: ALL
四、自动化脚本免密登录
生成密钥(本地机器执行) ssh-keygen -t rsa -b 4096 将公钥复制到服务器 ssh-copy-id 用户名@服务器IP 或手动添加 cat ~/.ssh/id_rsa.pub | ssh 用户名@服务器IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
五、其他服务的密码设置移除
-- 创建无需密码的用户(仅限本地连接) CREATE USER '用户名'@'localhost' IDENTIFIED BY ''; GRANT ALL PRIVILEGES ON 数据库名.* TO '用户名'@'localhost'; FLUSH PRIVILEGES;
编辑vsftpd配置 sudo nano /etc/vsftpd.conf 添加或修改 anonymous_enable=NO local_enable=YES 可选:启用匿名访问(不安全) anonymous_enable=YES
重要安全提醒
⚠️安全警告:
1、永远不要完全禁用所有认证,这会使服务器完全暴露
2、在禁用密码前,必须设置SSH密钥认证
3、测试配置后再断开当前连接:
在保持当前会话的同时测试新连接 ssh -i ~/.ssh/私钥文件 用户名@服务器IP
4、考虑使用两步验证增加安全性
最佳实践建议
1、使用SSH密钥+密码的组合认证(比单独使用密码更安全):
/etc/ssh/sshd_config AuthenticationMethods publickey,password
2、配置防火墙限制访问:
仅允许特定IP访问SSH sudo ufw allow from 你的IP to any port 22 sudo ufw enable
3、修改SSH端口:
/etc/ssh/sshd_config Port 2222 # 改为非标准端口
4、使用Fail2ban防止暴力破解:
sudo apt install fail2ban # Ubuntu/Debian sudo yum install fail2ban # CentOS/RHEL
建议: 对于生产服务器,推荐使用SSH密钥认证+强密码的双重认证方式,而不是完全移除密码设置。
文章摘自:https://idc.huochengrm.cn/fwq/24602.html
评论
机兴业
回复服务器移除密码设置,需进入管理界面,找到安全设置,选择取消密码保护或类似选项。