文章目录
遇到一个问题,尝试了很久没解决,后来提交腾讯云的工单解决的,先给腾讯云的技术客服点个赞!
腾讯云购买的时候,我当时估计选择了快速设置服务器配置,后续登录腾讯云的控制台,消息面板就收到了初试密码XXXXX,用户名为root,这个方便你SSH远程登录。问题就是,我希望更改这个XXXXX的初试密码。
一致遇到的问题如下:
问题排查过程:
1.SSH端口没开放(因为我的防火墙开启了),可能导致无法远程连接
依次进入:【控制台】----【安全组】—点击进入【实例】
选择【入站规则】----【添加规则】
添加所有需要的端口号,再尝试修改密码—远程登录,最终还是不行
操作可参考腾讯云官方文档:
https://cloud.tencent.com/document/product/213/34601
https://cloud.tencent.com/document/product/213/12451
安置完安全组,还需要绑定实例
看到如上图片,绑定实例个数,证明已经绑定成功了!
2.又尝试关机状态重置密码 和 开机状态重置密码:
两种方式,都尝试之后,发现也不行
3.如果绑定了秘钥,需要解绑或删除掉
后台查询到,有人说是因为之前绑定了秘钥,如果不解绑或删除掉,是不能远程登录的
最初我创建过秘钥,但是没有绑定实例,所以也不存在这个问题
4.终极解决方案:
官方技术提供的文档:
https://cloud.tencent.com/document/product/213/19670#.E4.BB.80.E4.B9.88.E6.98.AF-cloud-init.EF.BC.9F
重置完密码之后,需要执行如上文档里面的几个命令,然后就可以远程登录了(使用腾讯官方提供的网页SSH)
# 1.删除 cloud-init 缓存目录。
rm -rf /var/lib/cloud
# 2.执行完整的 cloud-init 初始化。
cloud-init init --local
# 3.根据配置的数据源拉取数据
cloud-init init
# 4.Cloud-Init 初始化分为多个 stage,为保证各个 stage 的依赖充分,cloud-init modules 指定运行 config stage。
cloud-init modules --mode=config
# 5. cloud-init modules 指定运行 final stage
cloud-init modules --mode=final
5.预留彩蛋:
如上操作完,只能使用腾讯云提供的官方web端的SSH登录,如果使用windows自动的终端登录,SSH登录的时候,发现还有新的问题:
如上图片就是报错,每个电脑提供的错误大致相同,但提示中:host key对应的地址可能有所不同。
参考如下博主的文章之后,删除known_hosts文件即可使用最新的密码登录了。
https://www.cnblogs.com/Raodi/p/11655610.html
6.最终幻想:
- 个人感觉cloud-init这个工具,就是缓存一些服务器数据,例如登录密码(例如hash值等),当远程登录的时候,就把输入的密码与缓存的做对比,如果不一样,就反馈鉴权失败或密码不对等。
- 同理,因为我本地终端,之前登录过我的服务器,后续修改密码之后,也没有删除known_hosts这个文件,最终导致新的密码hash值与老的缓存的对比失败。
以上部分可能理解有误,如果有大神烦请告知一二,感激涕零!