远程连接失败,提示“认证失败”
问题现象
执行远程连接操作时,提示“认证失败”。
可能原因
用户名、IP地址或端口配置有误。
解决方法
- 检查待访问的目标机器用户名、IP地址、端口是否正确。
- 在华为云码道IDE中,单击
,进入远程开发页面。 - 将鼠标悬浮在对应的连接上,查看用户名、IP地址和端口是否正确。 图2 查看连接信息
您也可以单击远程连接上的
,进入连接编辑页面进行查看。图3 进入编辑页面连接
此处配置的密码是对应Linux账户的登录密码,端口是SSH的连接端口。如果是普通Linux主机,端口一般默认为22,如果是远程Docker容器,则需要使用映射的端口。
- 在华为云码道IDE中,单击
- 根据错误提示信息进行修改。
- 无效的用户名或密码 图4 无效的用户名或密码
当前选用的认证方式为密码认证,如果所选方式无误,请检查用户名、密码是否填写正确,并检查远程主机上的“/etc/ssh/sshd_config”文件中,PasswordAuthentication是否被开启(默认值为yes)。如果当前使用root用户登录,请检查远程主机上的“/etc/ssh/sshd_config”文件中,PermitRootLogin是否被开启(默认值为yes)。
- 无效的用户名或私钥 图5 无效的用户名或私钥
当前选用的认证方式为密钥认证,如果所选方式无误,请检查用户名、密钥文件选择是否正确,并检查远程主机上的“/etc/ssh/sshd_config”文件中,PubkeyAuthentication是否被开启(设置为yes)。
- 你的密码已过期/密码可能已经过期 图6 你的密码已过期/密码可能已经过期
当前选用的认证方式为密码认证,如果所选方式无误,则说明账号或者密码过期。可以通过管理员用户登录到目标主机,然后通过chage命令查看、修改账户/密码的过期时间。相关命令参考如下:
# 查看某个用户的密码过期时间 chage -l [user] # 设置某个用户的密码保持有效的最大天数(99999) chage -M 99999 [user] # 修改某个用户的密码到期的日期,过了这一天,此账号将不可用。0表示马上过期,-1表示永不过期。 chage -E "2025-09-25" [user]
- 无效的密码或者root用户未被允许登录 图7 root用户未被允许登录
由于当前使用root用户登录,请检查远程主机上的“/etc/ssh/sshd_config”文件中,PermitRootLogin是否被开启(默认值为yes)。如果未开启,需要修改文件并通过命令service sshd restart或sudo systemctl restart sshd重启SSH服务。
- 无效的用户名或密码