SSH登录Ubuntu密码错误是常见问题,原因主要有:密码输入错误(大小写、键盘布局差异)、SSH服务配置(如禁用密码登录)、账户锁定、权限异常(如.ssh目录权限错误)等,解决方法:核对密码大小写与键盘布局,检查/etc/ssh/sshd_config确保PasswordAuthentication启用;使用sudo unlock解锁账户;修复.ssh目录权限(700)及authorized_keys权限(600);确认账户未被禁用,避免暴力尝试,复杂场景可联系管理员处理。
SSH(Secure Shell)是远程管理Ubuntu服务器的常用工具,但登录时提示"Permission denied(publickey,password)"或"Access denied"的密码错误问题,相信不少用户都遇到过,这个问题可能由密码输入错误、账户锁定、SSH配置问题等多种原因导致,本文将系统梳理常见原因及对应解决方法,帮你快速排查并解决问题。
最常见原因:密码输入错误或格式问题
新手遇到密码错误时,80%的情况其实是输入环节的问题,尤其容易被忽略的细节包括:
大小写敏感与特殊符号
Ubuntu的Linux系统对大小写严格区分,如果你的密码包含大小写字母(如"Pass123"和"pass123"是不同的)、特殊符号(如!@#$%^&*),输入时需确保与设置时完全一致,密码是"Test@2023!",输入时少一个字符、大小写写错,都会导致认证失败。

隐藏字符与输入法干扰
SSH终端默认不显示输入的密码(光标无变化),容易漏输或多输字符,中文输入法未切换至英文状态时,输入的符号可能被识别为中文符号(如和),导致密码不匹配。
密码已修改或混淆
你是否近期修改过Ubuntu系统密码?或者是否混淆了不同系统的登录密码(如Ubuntu服务器密码与本地电脑密码)?如果密码已被修改(比如通过passwd命令重置),但仍在使用旧密码登录,自然会提示错误。
解决方法:
- 输入密码时,仔细核对每个字符(可先在记事本中输入密码,复制粘贴到SSH终端,避免手动输入错误);
- 确保输入法为英文状态,检查特殊符号是否为英文半角格式;
- 确认当前密码是否为最新设置(若不确定,可尝试通过其他方式登录系统后重置密码,详见后文)。
账户被锁定:多次输错触发安全机制
Ubuntu系统默认配置了"登录失败锁定"策略,防止暴力破解,如果连续输错密码达到一定次数(通常为3-6次,具体取决于PAM模块配置),系统会临时锁定该用户账户,即使后续输入正确密码也无法登录。
如何判断账户是否被锁定?
通过SSH登录时,若提示"Permission denied"且错误信息中包含"authentication failure repeated"或"account locked",则可能是账户被锁定,也可通过以下命令在本地终端检查用户锁定状态:
sudo faillock --user <用户名>
若返回登录失败记录(如"Failed password 3 times"),说明账户已被锁定。
解决方法:
方法1:手动解锁账户(需本地登录或拥有sudo权限)
- 通过控制台或VNC登录Ubuntu系统(若SSH已无法使用);
- 执行以下命令解锁指定用户:
sudo faillock --user <用户名> --reset
解锁用户"ubuntu":
sudo faillock --user ubuntu --reset。 - 解锁后重新尝试SSH登录。
方法2:调整PAM锁定策略(避免再次被锁)
若频繁因误输密码被锁,可修改PAM配置调整锁定阈值:
- 编辑
/etc/pam.d/common-auth文件:sudo nano /etc/pam.d/common-auth
- 找到类似
auth required pam_faillock.so preauth silent deny=3 unlock_time=600的行,将deny=3改为更大值(如deny=5),即允许5次错误尝试; - 保存文件(Ctrl+O,回车,Ctrl+X),重启SSH服务:
sudo systemctl restart sshd。
SSH服务配置问题:禁用密码登录或认证方式错误
Ubuntu的SSH服务(sshd)默认允许密码登录,但若配置文件被修改,可能导致密码认证失效,即使密码正确也无法登录。
检查SSH是否允许密码登录
SSH配置文件/etc/ssh/sshd_config中,PasswordAuthentication参数控制是否启用密码认证,若该值被设为no,则只能通过SSH密钥登录,密码认证会被拒绝。
解决方法:
- 登录Ubuntu本地终端(或通过VNC),编辑SSH配置文件:
sudo nano /etc/ssh/sshd_config
- 找到
PasswordAuthentication行,确保其值为yes(若被注释,取消注释并设置):PasswordAuthentication yes
- 保存文件后,重启SSH服务使配置生效:
sudo systemctl restart sshd
检查是否强制使用密钥认证
若服务器配置了PubkeyAuthentication yes且未设置PasswordAuthentication yes,SSH会优先尝试密钥认证,若客户端未提供密钥,直接返回密码错误提示。
解决方法:
若需要同时支持密码和密钥登录,确保/etc/ssh/sshd_config中包含:
PubkeyAuthentication yes PasswordAuthentication yes
仅需要密钥登录时,保持PasswordAuthentication no,但需确保客户端已配置正确的SSH密钥(见下文)。
检查SSH服务是否运行
若SSH服务未启动,客户端连接时会直接提示"Connection refused"(非密码错误),但若服务异常中断,可能返回模糊的认证错误。
解决方法:
检查SSH服务状态:
sudo systemctl status sshd
若未运行,启动服务并设置开机自启:
sudo systemctl start sshd sudo systemctl enable sshd

