博客园  :: 首页  :: 管理

最近笔者在工作中,通过备份的AMI,还原创建实例后,发现不能使用密码口令登录,登录时会报如下错误:

[root@localhost ~]# ssh qq_5201351@13.250.125.37
Warning: Permanently added '13.250.125.37' (RSA) to the list of known hosts.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

但回忆之前创建AMI时,使用的那台EC2实例是可以口令登录的啊,那应该是sshd的配置文件发现了变化

经常反复实验,笔者得到如下几点结论

1、在创建AMI时,卷的数据是不会变化的(因此sshd配置文件,在此阶段没有发现变化)

2、但AWS上对于linux系统的AMI还原时,默认会将 /etc/ssh/sshd_config配置文件中的PasswordAuthentication指令的值修改为no

      另:笔者测试通过外部的AMI还原时,不会作此修改动作,应该可能仅对AWS提供的linux系统AMI会有此修改动作

+++++ 因此要解决此问题的方法,有如下两种  

方法一:需要借助于其他EC2实例,还得同一个可用区的

(1)先卸载根卷,

(2)挂载到其他ec2实例上,将问题主机根卷的sshd_config配置文件中的PasswordAuthentication指令的值修改为yes

(3)最后再挂载回原主机即可

方法二(推荐):在使用备份的AMI还原创建实例时,在配置实例阶段下的,用户数据User data处添加修改指令,如下:

#!/bin/bash
#
sed -i '1i PasswordAuthentication yes' /etc/ssh/sshd_config
systemctl restart sshd

注:sshd_config配置文件,同样的指令,以最之前的为准,因为需要将允许密码口令登录的指令选项,添加到最前面是最有效的

 

 

 

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/14799518.html