服务器开启密码登录的核心在于修改SSH配置文件(通常为 /etc/ssh/sshd_config)并重启SSH服务,整个过程分为备份配置、修改参数、重启服务三个关键步骤,操作简单但必须严谨以防止服务器被暴力破解。

核心操作流程:修改SSH配置文件
服务器密码登录的开关由SSH守护进程的配置文件决定,在进行任何修改之前,首要任务是保证现有配置的安全。
-
备份原始配置
登录服务器后,使用命令行工具对配置文件进行备份,这是运维操作的基本准则。
执行命令:cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
备份文件能在配置错误导致服务无法启动时,快速恢复服务器状态。 -
编辑配置文件
使用文本编辑器(如vim或nano)打开配置文件。
执行命令:vim /etc/ssh/sshd_config
在文件中找到PasswordAuthentication这一项。- 若显示为
no,表示密码登录被禁用。 - 将其修改为
yes,这是开启密码登录的决定性参数。
检查PermitRootLogin参数。 - 若显示为
prohibit-password或no,则Root用户无法通过密码登录。 - 建议设置为
yes或without-password(仅允许密钥),如果必须开启Root密码登录,请设置为yes,但出于安全考虑,不建议直接允许Root密码登录。
- 若显示为
-
保存并退出
修改完成后,保存文件并退出编辑器,确保配置写入磁盘。
服务重启与状态验证
配置文件修改后,必须重启SSH服务才能生效,同时需验证服务状态。
-
重启SSH服务
根据服务器操作系统的不同,重启命令略有差异。- CentOS/RHEL 系统:
systemctl restart sshd - Ubuntu/Debian 系统:
service ssh restart
执行重启命令后,系统不会输出过多信息,通常意味着执行成功。
- CentOS/RHEL 系统:
-
验证服务状态
检查SSH服务是否处于运行状态。
执行命令:systemctl status sshd或service ssh status
确认输出结果中包含active (running)字样,表明服务已正常加载新配置。 -
测试连接
在本地终端尝试建立新的SSH连接。
输入命令:ssh 用户名@服务器IP
系统提示输入密码时,输入对应用户的密码,成功登录即证明配置生效。
安全加固:密码登录的风险控制
开启密码登录意味着服务器将面临互联网上持续的暴力破解风险,必须配套安全措施。
-
使用强密码策略
简单的密码(如123456、admin)会在几分钟内被攻破。
密码长度应超过12位,且必须包含大小写字母、数字及特殊符号。
定期更换密码,避免长期使用同一组凭证。 -
安装防御软件
单纯依靠密码强度不足以应对大规模字典攻击。
推荐安装 Fail2ban 或 DenyHosts。
这类软件能自动监控登录日志,将多次尝试密码失败的IP地址自动封禁,大幅降低被暴力破解的概率。 -
修改默认端口
SSH默认端口为22,这是扫描工具的重点目标。
在sshd_config文件中,找到Port 22,将其修改为10000-65535之间的高位端口(22222)。
修改端口后,需同步更新防火墙规则,放行新端口。 -
限制登录用户
在配置文件中添加AllowUsers参数,指定允许登录的用户名。AllowUsers user1 user2
这能确保即使其他用户密码泄露,也无法通过SSH登录服务器。
常见问题排查
在实际操作中,可能会遇到配置正确但仍无法登录的情况,需从网络和权限层面排查。
-
检查防火墙设置
云服务器通常在控制台设有安全组或防火墙。
确保安全组规则放行了SSH端口(默认22或修改后的端口)。
如果服务器内部启用了防火墙(如firewalld或iptables),也需检查是否放行相应端口。 -
检查SELinux设置
CentOS等系统默认开启SELinux,可能会阻止非标准端口的SSH连接。
若修改了SSH端口,需同步修改SELinux策略。
查看SELinux状态:sestatus
若不懂SELinux规则配置,可临时设置为Permissive模式进行测试,但不建议生产环境直接关闭。
-
检查用户权限
确认登录用户已设置密码。
执行命令:passwd 用户名可重置或设置密码。
某些系统创建用户时默认无密码,必须手动设置密码才能登录。
密钥登录与密码登录的权衡
虽然本文重点讲解服务器怎么开启密码登录,但从E-E-A-T的专业角度出发,必须明确指出:密钥认证比密码认证更安全。
-
密钥认证的优势
SSH密钥对(RSA或ED25519)几乎无法被暴力破解。
私钥存储在本地,不通过网络传输,杜绝了中间人攻击的风险。 -
混合认证策略
对于高安全需求的服务器,建议采用“密钥优先,密码备用”的策略。
或者在开启密码登录的同时,限制密码登录的来源IP,仅允许特定IP段使用密码登录,其他IP必须使用密钥。
相关问答
修改SSH配置文件后服务器断开连接怎么办?
答:这种情况通常是因为配置文件语法错误导致SSH服务启动失败,在修改配置前,保持当前会话不退出,另外开启一个新的终端窗口尝试连接,如果新窗口无法连接,回到原窗口检查配置文件语法,或直接使用备份文件恢复:cp /etc/ssh/sshd_config.backup /etc/ssh/sshd_config,然后重启服务,如果是云服务器,还可通过控制台的VNC或远程连接功能进入服务器内部修复。
为什么开启了PasswordAuthentication仍然提示Permission denied?
答:原因可能有三个,第一,用户密码为空或未设置,需使用 passwd 命令设置密码,第二,SELinux或防火墙拦截了连接请求,第三,部分Linux发行版(如Ubuntu)默认禁用了Root登录,即使开启了密码认证,PermitRootLogin 参数若为 prohibit-password,Root用户依然无法通过密码登录,需将其修改为 yes。
如果您在配置过程中遇到其他问题,或者有独特的安全加固技巧,欢迎在评论区留言交流。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/92250.html