服务器怎么移除密码设置?

根据您的需求,我将介绍几种移除或禁用服务器密码验证的方法。重要提醒:在操作前请确保已配置备用登录方式(如SSH密钥),否则可能导致无法登录服务器!

一、禁用SSH密码登录(推荐)

修改SSH配置

编辑SSH配置文件
sudo nano /etc/ssh/sshd_config

找到并修改以下参数:

禁用密码认证
PasswordAuthentication no
启用密钥认证(确保此项为yes)
PubkeyAuthentication yes
可选:禁用空密码
PermitEmptyPasswords no

重启SSH服务

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(特定命令)

编辑sudoers文件

sudo visudo

添加以下内容(示例):

允许用户执行特定命令无需密码
用户名 ALL=(ALL) NOPASSWD: /bin/systemctl restart nginx
用户名 ALL=(ALL) NOPASSWD: /usr/bin/apt update
或允许所有命令无需密码(谨慎使用)
用户名 ALL=(ALL) NOPASSWD: ALL

四、自动化脚本免密登录

创建SSH密钥对(如果尚未创建)

生成密钥(本地机器执行)
ssh-keygen -t rsa -b 4096
将公钥复制到服务器
ssh-copy-id 用户名@服务器IP
或手动添加
cat ~/.ssh/id_rsa.pub | ssh 用户名@服务器IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

五、其他服务的密码设置移除

MySQL/MariaDB免密登录

-- 创建无需密码的用户(仅限本地连接)
CREATE USER '用户名'@'localhost' IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON 数据库名.* TO '用户名'@'localhost';
FLUSH PRIVILEGES;

FTP服务(vsftpd)

编辑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

评论

精彩评论
  • 2026-04-10 19:48:41

    服务器移除密码设置,需进入管理界面,找到安全设置,选择取消密码保护或类似选项。