欢迎您来到腾讯云!积分商城

腾讯云腾讯云论坛

 找回密码
 立即注册
忘了密码?

扫一扫,访问微社区

快捷导航
搜索
查看: 268|回复: 2

[经验分享] 新购 coreOS 系统一段时间后无法登陆原因

[复制链接]

5

主题

0

好友

1430

积分

攻城师[LV3]

Rank: 3Rank: 3Rank: 3

云币
6090
威望
1430
发表于 2018-7-16 15:39:36 |显示全部楼层 |未分类
新购 coreOS 系统一段时间后无法登陆原因
问题现象:
新购coreOS刚开始可以正常远程登陆,但是过一段时间后就无法远程登陆了,如果有留意会发现在登陆系统10分钟左右后窗口会弹出下列信息,通知了系统会在5分钟后重启,机器重启后再次远程连接就发现连接不上了,会直接提示 Connection reset by peer
  1. Broadcast message from locksmithd at 2018-06-06 09:42:14.617503005 +0800 CST:  
  2. System reboot in 5 minutes!
  3. root@BJ-CentOS7 ~ # ssh 182.254.xxx.xx
  4. ssh_exchange_identification: read: Connection reset by peer
复制代码
问题分析:
这里首先考虑到,是不是 SSH 配置发生变化导致无法连接的,于是通过 VNC 方式连接服务器查看 sshd_config 配置文件:
这里看起来也没什么异常的,唯独在centos、Ubuntu等系统的SSH配置中默认没有配置 ciphers 参数,会不会是这个原因,于是注释该行配置(这里发现 coreOS 中 sshd 配置在修改后会自动加载,不需要重启服务)
  1. VM_132_222_coreos ssh # cat /etc/ssh/sshd_config
  2. # Use most defaults for sshd configuration.
  3. UsePrivilegeSeparation sandbox
  4. Subsystem sftp internal-sftp
  5. ClientAliveInterval 180
  6. UseDNS no
  7. ciphers aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,arcfour
  8. KexAlgorithms diffie-hellman-group1-sha1
  9. PasswordAuthentication yes
复制代码
再次远程连接,果然不再出现 reset 的错误,但是又发现另外一个问题,那就是默认使用 root 用户连接会提示权限拒绝
  1. root@BJ-CentOS7 ~ # ssh 182.254.xxx.xx         #IP没有写错哈,这里xxx是故意打码
  2. root@182.254.xxx.xx's password:
  3. Permission denied, please try again.
  4. root@182.254.xxx.xx's password:
  5. Permission denied, please try again.
  6. root@182.254.xxx.xx's password:
  7. Permission denied (publickey,password,keyboard-interactive).
复制代码
这里找资料了解了下,原来在 CoreOS 中,和其他 Linux 发行版不一样,它的 ssh配置中 PermitRootLogin 默认是 no ,禁止了 Root 登陆,那么我们添加一行配置,再次连接,终于可以连接上了
  1. VM_132_222_coreos ~ # grep Permit /etc/ssh/sshd_config
  2. PermitRootLogin yes
复制代码
那么再回头看一下,为什么系统会自动重启了,而且重启后机器就不能正常连接了呢?
查找资料,这个问题可能是系统自动更新了,于是我们对比看下初始镜像和重启后系统版本及 ssh 服务版本果然发生变化了,继续发掘才得知是
coreOS 的自动更新策略在搞鬼,ssh 服务更新至 7.6 版本后不再支持数据加密算法 arcfour,blowfish和CAST,可以阅读 openssh7.6 版本发布说明
  1. #更新前
  2. VM_132_222_coreos ~ # grep VERSION= /etc/os-release
  3. VERSION=717.3.0
  4. VM_132_222_coreos ~ # ssh -V
  5. OpenSSH_6.7p1, OpenSSL 1.0.1p 9 Jul 2015
  6. #更新后
  7. VM_132_222_coreos ~ # grep VERSION= /etc/os-release
  8. VERSION=1745.7.0
  9. VM_132_222_coreos ~ # ssh -V
  10. OpenSSH_7.6p1, OpenSSL 1.0.2n  7 Dec 2017
复制代码
问题分析总结:
对 CoreOS 目前了解甚少,对于其一些系统默认策略不了解,着实尴尬
1 、CoreOS 会在 启动后10分钟 以及之后的 每隔1个小时 自动检测系统版本,如果检查到新版本就会自动下载下来放到备用分区上,然后依据之前的那个升级策略决定是否自动重启系统
具体的升级检测记录可以通过 journalctl -f -u update-engine 命令查看到
2 、CoreOS 每次更新都是一次整体升级,下载完整的系统镜像,然后做 MD5 校验,最后重启一下系统,把内核与外围依赖整个换掉,这就导致 openssh 服务同时被更新,openssh 的一些新特性也被应用
3 、腾讯云提供的默认 CoreOS 镜像版本是 717.3.0,更新频率不及时情况下机器会根据默认或自定义的升级通道检测新版本更新系统,更新通道定义在/etc/coreos/update.conf 文件中,各通道发布更新的频率依次为:
Alpha:每周星期四发布
Beta:每两周发布一次
Stable:每个月发布一次
  1. VM_132_222_coreos ~ # cat /etc/coreos/update.conf
  2. GROUP=stable
复制代码
具体关于CoreOS的更新问题可参考下列地址了解和自定义配置:
https://www.linuxidc.com/Linux/2015-04/116081.htm
https://linux.cn/article-5262-2.html
https://coreos.com/blog
解决方案总结:
修改 /etc/ssh/sshd_config 文件:
1、注释 ciphers 参数配置或去掉 openssh 已经不支持的数据加密算法,openssh已不再支持 arcfour,blowfish和CAST 算法,如果有更新的版本发布需要注意 openssh 官网 中对于新版本发布说明中是否有新增不再支持的加密算法
2、添加 PermitRootLogin yes 配置行允许 root 用户 ssh 方式登陆服务器
  1. VM_132_222_coreos ~ # egrep 'ciphers|PermitRootLogin' /etc/ssh/sshd_config
  2. #ciphers aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,arcfour
  3. ciphers aes128-cbc,aes192-cbc,aes256-cbc     #注释 ciphers 参数配置或去掉openssh已经不支持的数据加密算法
  4. PermitRootLogin yes                          #定义允许 root 用户 ssh 方式登陆服务器,不添加此配置默认不允许 root ssh 方式登陆服务器
复制代码

1

主题

0

好友

64

积分

小白[LV1]

Rank: 1

云币
218
威望
64
发表于 2018-7-25 10:14:01 |显示全部楼层
腾讯云的海外虚拟主机也一样,根本无法连接
回复

使用道具 举报

0

主题

0

好友

260

积分

小白[LV1]

Rank: 1

云币
610
威望
260
发表于 昨天 09:43 |显示全部楼层
学习了!~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
您需要登录后才可以发帖 QQ登录

联系我们|腾讯云平台|积分商城|腾讯云官方论坛    

GMT+8, 2018-8-15 07:07 , Processed in 1.169627 second(s), 28 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部