# 通过临时云服务器挂载系统盘方式重置Linux ECS密码
#### 操作场景
如果在创建弹性云服务器时未设置密码、密码丢失或密码过期，则需要通过重置密码方式获取新密码。
通常情况，请参考[在控制台重置云服务器密码](https://support.huaweicloud.com/usermanual-ecs/zh-cn_topic_0067909751.html)，通过控制台的"重置密码"功能为弹性云服务器重置密码。
如果无法通过控制台重置密码或重置后的密码不生效，可能是由于弹性云服务器缺失一键式重置密码插件、未开通并授权COC或未安装UniAgent，此时，您可以参考本节内容重新设置密码。
本节操作重置的是root用户的密码，您可以重置完root密码后登录云服务器后再更换密钥或重置非root用户的密码。
Windows操作系统请参见[通过临时云服务器挂载系统盘方式重置Windows ECS密码](https://support.huaweicloud.com/ecs_faq/zh-cn_topic_0179487873.html)。
#### 约束与限制
- 本操作需要卸载系统盘，为了避免造成系统盘数据丢失，建议您在操作前先备份系统盘或制作系统盘快照。
- 本操作依赖changepasswd.sh脚本，仅支持使用公共镜像创建的弹性云服务器。 对于使用私有镜像或其他非公共镜像创建的弹性云服务器，建议参考[在ECS操作系统内部重置密码](https://support.huaweicloud.com/usermanual-ecs/ecs_03_0403.html)。
  
 
#### 前提条件
- 备份系统盘或制作系统盘快照，详细操作请参见[备份弹性云服务器](https://support.huaweicloud.com/usermanual-ecs/ecs_03_1502.html)或[创建云硬盘快照](https://support.huaweicloud.com/usermanual-evs/zh-cn_topic_0066615262.html)。
- 已经准备一台Linux操作系统的临时弹性云服务器，该临时弹性云服务器与待重置密码的弹性云服务器位于同一个可用区，并具有相同的CPU架构。
  ![](https://support.huaweicloud.com/ecs_faq/public_sys-resources/note_3.0-zh-cn.png)
  您可以选择符合要求的已有云服务器作为临时弹性云服务器，也可以重新购买一台临时弹性云服务器。
  重新购买的弹性云服务器在重置密码后，建议释放，以免继续收费。
  
- 临时弹性云服务器已经绑定弹性公网IP。
 
#### 操作流程
图1重置密码操作流程   
![](https://support.huaweicloud.com/ecs_faq/zh-cn_image_0000001516984802.png "点击放大")
#### 操作步骤
1. 下载重置密码的脚本，并上传至临时弹性云服务器。 单击[重置密码脚本](https://cn-south-1-cloud-reset-pwd.obs.cn-south-1.myhuaweicloud.com/util/changepasswd.zip)下载并解压缩，在本地通过WinSCP等连接工具，将获取的changepasswd.sh脚本上传到临时云服务器。
   WinSCP下载地址：<https://winscp.net/>。
   
2. 关闭原弹性云服务器，卸载其系统盘，并将系统盘挂载到临时弹性云服务器。
   1. 登录[ECS控制台](https://console.huaweicloud.com/ecm/?#/ecs/manager/vmList)，进入弹性云服务器列表页面。
   
   2. 原弹性云服务器关机，单击云服务器名称进入详情页，并选择"云硬盘"页签。
      ![](https://support.huaweicloud.com/ecs_faq/public_sys-resources/note_3.0-zh-cn.png)
      原弹性云服务器关机时，请勿执行强制关机操作，否则可能引起重置密码操作失败。
      
   
   3. 单击系统盘所在行的"卸载"，卸载该系统盘。
    
3. 将系统盘挂载到临时弹性云服务器上。
   1. 展开临时弹性云服务器的详情页，并选择"云硬盘"页签。
   
   2. 单击"挂载磁盘"，在"挂载磁盘"对话框中，选择[2.c]中卸载的系统盘，将其挂载到临时弹性云服务器上。
    
4. 远程登录临时弹性云服务器，并重置密码。
   1. 在临时弹性云服务器的"操作"列下，单击"远程登录"。
   
   2. 执行以下命令，查看原弹性云服务器上卸载的系统盘在临时弹性云服务器上的目录。
      ```
      fdisk -l
      ```
      图2查询系统盘所在目录   
      ![](https://support.huaweicloud.com/ecs_faq/zh-cn_image_0000001384584706.png "点击放大") 
   
   3. 在**changepasswd.sh** 脚本所在目录执行以下命令，运行重置密码脚本。
      ```
      chmod +x changepasswd.sh
      ./changepasswd.sh
      ```
      运行重置密码脚本时，如果系统提示没有lv相关的命令（如no lvs commmand），则需要在临时弹性云服务器安装lvm(Logical Volume Manager)工具，推荐使用lvm2，您可以执行以下命令进行安装。
      ```
      yum install lvm2
      ```
      ![](https://support.huaweicloud.com/ecs_faq/public_sys-resources/note_3.0-zh-cn.png)
      如果原弹性云服务器和临时弹性云服务器的操作系统均为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. 重启原弹性云服务器。
 
