更新时间:2024-07-24 GMT+08:00

重置Linux云服务器密码

操作场景

弹性云服务器系统密码涉及到客户重要的私人信息,提醒您妥善保管密码。在如下场景中,您可以重置弹性云服务器的密码:

  • 忘记密码
  • 密码过期

本节操作重置的是root用户的密码,您可以重置完root密码后登录云服务器后再更换密钥或重置非root用户的密码。

前提条件

  • 已经准备一台Linux操作系统的临时弹性云服务器,该临时弹性云服务器与待重置密码的弹性云服务器位于同一个可用区,并具有相同的CPU架构。
  • 临时弹性云服务器已经绑定弹性公网IP

操作步骤

  1. 下载重置密码的脚本,并上传至临时弹性云服务器

    单击重置密码脚本下载并解压缩,在本地通过WinSCP等连接工具,将获取的changepasswd.sh脚本上传到临时云服务器。

    WinSCP下载地址:https://winscp.net/

  2. 关闭原弹性云服务器,卸载其系统盘,并将系统盘挂载到临时弹性云服务器
    1. 登录管理控制台。
    2. 单击管理控制台左上角的,选择区域和项目。
    3. 选择“计算 > 弹性云服务器”。
    4. 弹性云服务器关机,单击云服务器名称进入详情页,并选择“云硬盘”页签。

      弹性云服务器关机时,请勿执行强制关机操作,否则可能引起重置密码操作失败。

    5. 单击系统盘所在行的“卸载”,卸载该系统盘。
  3. 将系统盘挂载到临时弹性云服务器上。
    1. 展开临时弹性云服务器的详情页,并选择“云硬盘”页签。
    2. 单击“挂载磁盘”,在“挂载磁盘”对话框中,选择2.e中卸载的系统盘,将其挂载到临时弹性云服务器上。
  4. 远程登录临时弹性云服务器,并重置密码。
    1. 在临时弹性云服务器的“操作”列下,单击“远程登录”。
    2. 执行以下命令,查看原弹性云服务器上卸载的系统盘在临时弹性云服务器上的目录。

      fdisk -l

      图1 查询系统盘所在目录
    3. changepasswd.sh脚本所在目录执行以下命令,运行重置密码脚本。

      chmod +x changepasswd.sh

      ./changepasswd.sh

      运行重置密码脚本时,如果系统提示没有lv相关的命令(如no lvs commmand),则需要在临时弹性云服务器安装lvm(Logical Volume Manager)工具,推荐使用lvm2,您可以执行命令yum install lvm2进行安装。

      如果原弹性云服务器和临时弹性云服务器的操作系统均为centos7,运行脚本过程中可能会出现挂载失败。请将脚本中的内容“mount $dev $mountPath”修改为“mount -o nouuid $dev $mountPath”,避免脚本运行失败。

    4. 根据系统提示输入新设置的密码和4.b中获取到的目录信息。
      系统显示如下回显信息时,说明密码设置成功。
      set password success.
  5. (可选)如果是非root用户,请执行如下操作打开root登录权限。

    vi /etc/ssh/sshd_config

    修改如下配置项:

    • 把PasswordAuthentication no 改为 PasswordAuthentication yes

      或去掉PasswordAuthentication yes 前面的#注释掉。

    • 把PermitRootLogin no 改为 PermitRootLogin yes

      或去掉PermitRootLogin yes 前面的#注释掉。

    • 修改AllowUsers的值为root

      在文件中查找AllowUsers,如果没有请在文件末尾补充AllowUsers root。

  6. 关闭临时弹性云服务器,卸载原弹性云服务器的系统盘,并将其重新挂载回原弹性云服务器后执行重启操作。
    1. 临时弹性云服务器关机,并进入详情页,选择“云硬盘”页签。
    2. 单击“卸载”,卸载3中临时挂载的数据盘。
    3. 展开原Linux弹性云服务器的详情页,选择“云硬盘”页签。
    4. 单击“挂载磁盘”,在“挂载磁盘”对话框中,选择6.b中卸载的数据盘。
  7. 重启原弹性云服务器