服务器漏洞需要升级ssh,直接平滑升级ssh。
注:我根据要求没有升级到过高版本,最新的ssh是9.3,ssl是3.0以上的。我升级的是openssh8.8
1、openssh升级前所需安装依赖 zlib-1.2.11.tar.gz,openssl-1.1.1j.tar.gz
2、编译安装检查是否有gcc安装环境
-- 测试环境是新安装的,生产环境查了几个都有,在安装前查询一下是否缺少gcc编译环境
-- 查询命令 rpm -qa gcc
3、统一解压安装包到指定目录
-- 新安装的包都统一解压到/usr/local/src/目录下。
# tar -zxvf openssl-1.1.1p.tar.gz -C /usr/local/src/
# tar -zxvf openssh-8.8p1.tar.gz -C /usr/local/src/
# tar -zxvf zlib-1.2.11.tar.gz -C /usr/local/src/
4、编译安装zlib
注:注意安装目录
-- 新安装的依赖到统一安装在/usr/local/下(可以自己定义安装位置,我是服务器这里没有安装文件)
# cd zlib-1.2.11
# ./configure --prefix=/usr/local/zlib
# make && make install
5、编译安装openssl
# cd openssl-1.1.1p/
# ./config --prefix=/usr/local/ssl -d shared
# make && make install
注:如果出现编译的时候出现提示不用管,只要是 OpenSSL has been successfully 就行。
# echo '/usr/local/ssl/lib' >> /etc/ld.so.conf
# ldconfig -v
# /usr/local/ssl/bin/openssl version -a
注:查询ssl安装情况rpm -qa | grep openssl 测试环境两个 ssl版本同时存在,实际测试环境没有影响。
6、编译安装openssh
# cd openssh-8.8p1/
# ./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
# make && make install
7、配置文件备份和修改
# sshd_config文件修改
echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config
echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config
echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config
# 备份原有文件,并将新的配置复制到指定目录
注:ssh -V 查询目前ssh还是系统自带的7.4版本,需要重新配置文件到指定目录,不用卸载旧版本,配置完成就是最新安装版本。
mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
mv /usr/sbin/sshd /usr/sbin/sshd.bak
cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
mv /usr/bin/ssh /usr/bin/ssh.bak
cp /usr/local/openssh/bin/ssh /usr/bin/ssh
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
mv /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak
cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
注:到这里文件配置已经替换完成,可以执行ssh -V 查询替换完的版本,查询已经是替换为ssh8.8版本
# 修改systemd参数(去掉Type或改为Type=simple)
vim /usr/lib/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service
[Service]
#Type=notify
Type=simple
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
8、重启sshd服务
# systemctl daemon-reload
# systemctl restart sshd
# systemctl status sshd
==== 生产执行安装成功,执行安装时间15-20分钟,openssl安装时间长,配置安装openssh指定目录执行时间长。
==== !!!安装完成后先不要直接退出ssh连接,我是同时开了3个远程ssh连接,重启ssh后需要重新是试一下新的ssh连接,验证升级。
-----------------测环境执行记录------------------------
8 cd /data/
9 tar -zxvf openssl-1.1.1p.tar.gz -C /usr/local/src/
10 tar -zxvf openssh-8.8p1.tar.gz -C /usr/local/src/
11 tar -zxvf zlib-1.2.11.tar.gz -C /usr/local/src/
12 cd /usr/local/
---------------------
36 cd /usr/local/src/
37 ll
38 cd zlib-1.2.11/
39 ll
40 ./configure --prefix=/usr/local/zlib
41 make && make install
42 cd ..
43 cd openssl-1.1.1p/
44 ll
45 ./config --prefix=/usr/local/ssl -d shared
46 make && make install
47 ll
48 top
49 openssl -V
50 rpm -qa | grep openssl
51 echo '/usr/local/ssl/lib' >> /etc/ld.so.conf
52 ldconfig -v
53 /usr/local/ssl/bin/openssl version -a
54 cd ..
55 ll
56 cd ps -e grep ssl
57 ssl -V
58 rpm -qa | grep ssl
59 /usr/local/ssl/bin/openssl version -a
60 ll
61 rpm -qa | grep zlib
62 rpm -qa | grep ssl
63 /usr/local/ssl/bin/openssl version -a
64 cd openssh-8.8p1/
65 ll
66 ./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
67 make && make install
68 echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config
69 echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config
70 echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config
71 mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
72 cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
73 mv /usr/sbin/sshd /usr/sbin/sshd.bak
74 cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
75 mv /usr/bin/ssh /usr/bin/ssh.bak
76 cp /usr/local/openssh/bin/ssh /usr/bin/ssh
77 mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
78 cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
79 cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
80 vim /usr/lib/systemd/system/sshd.service
81 cd /usr/lib/systemd/system
82 ll
83 vi sshd.service
84 systemctl daemon-reload
85 systemctl daemon-reload
86 systemctl restart sshd
87 systemctl status sshd
88 ssh -V
89 top
90 rpm -qa gcc
91 histoory
92 history
没有合适的资源?快使用搜索试试~ 我知道了~
ssh离线升级版本,不用卸载旧版本ssh直接替换历史版本,迁移密钥重启ssh
共4个文件
gz:3个
txt:1个
需积分: 0 10 下载量 182 浏览量
2023-05-16
10:16:15
上传
评论
收藏 11.69MB ZIP 举报
温馨提示
记录一下ssh离线升级版本(有openssh8.8安装包和依赖),redhad的ssh7.4升级到8.8,不用卸载旧版本ssh直接替换历史版本,迁移密钥重启ssh。有一定危险,我这有安全限制不能用telnet连接,需要多开几个ssh连接已被升级失败不能重新连接,我这个升级如果远程ssh连接断网就彻底费了。在VM测试环境和腾讯云或是阿里云可以设置快照,能马上恢复。 我这个升级是完成了平滑升级,网上教程要开启远程telnet的,我这用不了telnet,升级过程种远程ssh连接不断这个就可以完成升级,都是手工命令每一步都是自己执行,没写shell脚本。
资源推荐
资源详情
资源评论
收起资源包目录
openssh升级.zip (4个子文件)
openssh升级
openssh-8.8p1.tar.gz 1.73MB
openssl-1.1.1p.tar.gz 9.4MB
zlib-1.2.11.tar.gz 593KB
ssh升级执行脚本.txt 6KB
共 4 条
- 1
资源评论
酱爆鸡蛋
- 粉丝: 13
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功