Skip to content

登录Linux实例时提示“登录失败,无法使用密码登录方式”

1. 通过 webVNC 登录实例

这里以 debian13 为例,通过 控制台-管理-VNC 控制 登录实例

image

2. 检查 ssh 服务端口是否被监听。

image

若端口并未被监听,通过 systemctl restart sshd ​启动服务进行尝试连接

3. 检查 SSH 服务是否禁用密码登录

Linux 默认通过 SSH 服务登录,若配置文件禁用了密码登录(强制密钥登录),会导致密码登录失败。

编辑 SSH 配置文件:

bash
sudo vim /etc/ssh/sshd_config

查找并修改以下参数:

  • 确保 PasswordAuthentication yes​(允许密码登录,若为 no ​则改为 yes)。

  • 保存后重启 SSH 服务:

bash
# CentOS/RHEL系统
sudo systemctl restart sshd  
# Ubuntu/Debian系统
sudo systemctl restart ssh

4. 是否允许远程登录系统限制 root 用户远程登录,可检查:

  • SSH 配置文件 /etc/ssh/sshd_config ​中是否有 PermitRootLogin no​,若需允许 root 远程密码登录,改为 PermitRootLogin yes 并重启 SSH 服务。

  • 保存后重启 SSH 服务:

bash
# CentOS/RHEL系统
sudo systemctl restart sshd  
# Ubuntu/Debian系统
sudo systemctl restart ssh

5. 其他可能原因

  • 防火墙或安全组限制:确保实例的 22 端口(SSH 默认端口)未被防火墙(如 firewalld​、ufw)或安全组阻断(允许源 IP 访问 22 端口)。
  • 可尝试关闭系统防火墙进行排查

Linux 系统中,不同发行版关闭防火墙的命令有所差异,以下是主流发行版的操作方法:

1. CentOS/RHEL 7 及以上(使用 firewalld)

  • 临时关闭(重启后失效)

    bash
    sudo systemctl stop firewalld
  • 永久关闭(禁止开机启动)

    bash
    sudo systemctl disable firewalld
  • 验证状态

    bash
    sudo systemctl status firewalld

    输出显示 inactive (dead) ​则表示已关闭。

2. Ubuntu/Debian(使用 ufw)

  • 临时关闭

    bash
    sudo ufw disable
  • 验证状态

    bash
    sudo ufw status

    输出显示 Status: inactive ​则表示已关闭。