linux 忘记密码无法登陆问题处理

在aws 云平台的机器如果忘记密码或者系统被入侵密码被篡改有以下几种方式。

1、通过创建iam 的角色,给角色授权,再把角色绑定到ec2,最后通过 aws 的SSM 服务连接登陆。注意此方式的 前提是ec2已经安装了ssm的服务,一般新版本的aws 的系统镜像会默认安装,如果是旧版本或者公共镜像默认没有安装,后期安装需要登陆机器所以这里不适用。

2、基于原来服务器系统盘镜像方式

在aws 的ec2控制台找到问题实例,关闭实例,找到它的系统盘,注意记录此盘的挂载点(例如/dev/sda1,那么当系统盘处理好以后还要挂到此路径才能启动成功),点击磁盘断开连接,再次新建一个正常的ec2或者现有的ec2,把刚才的磁盘绑定到正常的ec2,登陆政策的实例,创建临时目录/data-tmp,把问题磁盘挂载,进入到问题磁盘进行如下操作:cd /data-tmp

ssh/sshd_config
UsePAM no #默认是yes ,需要配置为no 或者注释掉

vi etc/passwd
找到要重置密码的用户,配置用户信息的那一行的第二列配置为 x

vi etc/shadow
用户的密码会经过加密配置到shadow文件的用户信息那行的第二列的位置,每一列都用分号分隔。所以在这个正常机器上面创建一个临时用户手动配置新密码,查看该用户的shadow文件第二列位置的加密后的字符串信息,
然后复制到挂载
的/data-tmp/etc/shadow 的要更改的用户的那一行的第二列位置即可。

卸载该问题盘,把磁盘挂载到原来的问题实例上面,启动后用上面配置的新密码登陆即可。

3、其他步骤与2类似,只有密码配置这不需要更改/etc/passwd /etc/shadow. ,只要挂载问题盘以后,例如挂载到了/data-tmp ,更改一下当前主机的根目录,chroot  /data-tmp,然后此服务器

挂载的/分区就变为 /data-tmp 了,此时对用户work 更改密码,就相当于对问题盘里面的密码相关文件进行更改,也就是说更改的是之前问题实力的系统用户,更改以后卸载重新挂原来服务器即可。