更新时间:2026-05-29 GMT+08:00
分享

远程连接失败,提示“认证失败”

问题现象

执行远程连接操作时,提示“认证失败”

图1 报错信息

可能原因

用户名、IP地址或端口配置有误。

解决方法

  1. 检查待访问的目标机器用户名、IP地址、端口是否正确。

    1. 在华为云码道IDE中,单击 ,进入远程开发页面。
    2. 将鼠标悬浮在对应的连接上,查看用户名、IP地址和端口是否正确。
      图2 查看连接信息

      您也可以单击远程连接上的 ,进入连接编辑页面进行查看。

      图3 进入编辑页面连接

      此处配置的密码是对应Linux账户的登录密码,端口是SSH的连接端口。如果是普通Linux主机,端口一般默认为22,如果是远程Docker容器,则需要使用映射的端口。

  2. 根据错误提示信息进行修改。

    • 无效的用户名或密码
      图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服务。

相关文档