新购腾讯云 coreOS 系统服务器一段时间后无法登陆原因

新购腾讯云 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 方式登陆服务器

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏极客编程

IPFS环境安装与入门教程

IPFS(InterPlanetary File System,星际文件系统)是去中心化的,本文是介绍IPFS节点软件的系统环境搭建安装与使用方法的入门教程,并...

50630
来自专栏互扯程序

java 诊断工具—— Arthas

该说不说!小编做的这些功能,最讨厌的就是优化!某些前辈大佬写的代码小辈我实在不敢恭维!那逻辑!那sql!

24710
来自专栏破晓之歌

15款Django开发常用软件包 原

1. Python social auth 一款社交账号认证/注册机制,支持Django、Flask、Webpy等在内的多个开发框架,提供了约50多个服...

8520
来自专栏石奈子的Java之路

原 Intellij IDEA必要条件

17050
来自专栏Java工程师日常干货

分布式利器Zookeeper(一)Hello,Zookeeper初步认识Zookeeper的数据模型初步认识Zookeeper的角色组成install Zookeeper基本的ZK命令ZooInspe

Zookeeper不论是在实际项目中,还是在各种分布式开源项目中都得到了广泛应用,从本篇博客开始,将为大家带来我对Zookeeper的认识。这个系列将会涵盖Zo...

12120
来自专栏陈树义

如何在IntelJ下用Maven创建一个Web项目

相信一开始做Web项目的同学都是直接把项目包放在WEB-INF/lib目录下,然后就开始做项目了。但是之后接触了一些使用了Maven进行包管理的项目,我们就不得...

28160
来自专栏LhWorld哥陪你聊算法

hadoop集群篇--从0到1搭建hadoop集群

本来有套好好的集群,可是不知道为什么虚拟机镜像文件损坏,结果导致集群不能用。所以不得不重新搭套集群,借此机会顺便再重新搭套吧,顺便提醒一句大家,自己虚拟机的集群...

17310
来自专栏Web项目聚集地

MyBatis-逆向工程「Generator使用指南」

当你利用搜索引擎搜索Maven会出来很多名词:对象模型、标准集合、依赖管理系统这是啥啊?差不多得你会用了Maven才会理解这些名称吧,我找到了一个博主的博客

19320
来自专栏三木的博客

RPM软件包管理机制之旅

    Linux下的man命令十分实用,可以查看Linux命令的手册。但这些手册只适用于忘记命令的选项时查询之用,如果用来学习Linux下类似于Git, RP...

43670
来自专栏Snova云数仓

Greenplum的HA实践

GP集群的 Primary MasterA节点部署一个备份节点,即Slava Master B节点。

99260

扫码关注云+社区

领取腾讯云代金券