把生产服务器干烂了

110 天前
 xiaozhu317

-原由:服务器的 SSH 需要升级,因为发现了一些 SSH 漏洞

-过程:我使用的别人整理好的 rpm 文件,确实在测试服务器中升级成功了,但是在正式服务器中升级失败。可能是服务器的 glibc 版本太低,可能导致新版本 SSH 升级失败。(可能有人会问,为什么不自己编译,我在测试服务器自行编译成功升级了,使用 rpm 文件也成功升级了,于是就优先使用的 rpm 文件)

-结果:升级失败后,SSH Session 直接断连,远程连接不上,只好联系服务器供应商。

-庆幸:这个服务器没有在部署的应用,都停掉了,这是唯一庆幸的一点。

-总结: 1.遇到 SSH 升级问题,联系供应商,不要自己尝试,就算自己尝试,提前在供应商那备份快照。 2.确实需要慎重操作服务器。涉及升级软件的操作,一定多测试测试,多准备几个测试环境。 3.工作的时候难免有急躁的时刻,这个时候才是真容易犯错。 4.欢迎各位 V 友指导

12426 次点击
所在节点    服务器
86 条回复
ntgeralt
35 天前
@julyclyde
```
sudo docker network create --driver bridge --subnet 172.18.0.0/16 my_network

创建 ssh Docker 容器,这次使用可写模式挂载主机文件系统:
sudo docker run -d --name ssh-container \
--network my_network \
-v /:/host \
-p 2222:22 \
-e ROOT_PASSWORD=123456 \
rastasheep/ubuntu-sshd:18.04

重建 docker ssh 密码为 123456 并
sudo docker exec -it ssh-container passwd root

连接 ssh 2222 ,进入主机的文件系统并使用 chroot:
cd /host
chroot .

现在尝试更新包列表:
apt update


您应该能够重建容器以外的 SSH 服务器:
apt install openssh-server
```
ntgeralt
35 天前
*补充 docker restart 参数和完整重建过程,已经实测。

#建立 docker 打通网络

sudo docker network create --driver bridge --subnet 172.18.0.0/16 my_network

#拉取并创建 ssh Docker 容器

sudo docker run -d --name ssh-container \

--network my_network \

-v /:/host \

-p 2222:22 \

-e ROOT_PASSWORD=123456 \

--restart unless-stopped \

rastasheep/ubuntu-sshd:18.04


#ssh 连接 2222 root 123456 提示密码错误,重建 docker ssh 密码为 123456

sudo docker exec -it ssh-container passwd root

#重新连接连接 ssh 2222 ( root 123456 ),进入主机的文件系统并使用 chroot:

cd /host

chroot .

#您现在能够重建容器外 SSH 服务器:

apt update && apt purge openssh-server && apt install openssh-server

passwd root
julyclyde
34 天前
@ntgeralt 也就是,你发明了一个穿上裤子再放屁的问题
本来 sshd 在系统里好好的,你非要额外套个 docker 然后把外面系统 volume 给它去运行

有这时间,另外开个端口运行备用 sshd 不就得了?
ntgeralt
33 天前
@julyclyde 千言万语不如不如直接来一句:不懂 docker 鄙视 docker
julyclyde
33 天前
@ntgeralt 我不鄙视 docker
我只是鄙视你而已
ntgeralt
33 天前
@julyclyde 谢谢鄙视,能得到您的鄙视是 V2EX 莫大荣幸。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1059898

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX