centos openssh升级(离线升级)

背景:漏洞扫描扫出一堆的 openssh相关的漏洞。解决方案是升级ssh版本。由于内网升级会遇到各种包缺失的情况。经过一凡周折。终于解决。网上文章很多。但很多有误导。现把自己经历整理。希望对小伙伴有帮助。

准备:
下载好需要的安装包:
gcc、openssl-devel、zlib、openssh-9.1p1

1.离线下载方法:
找一台系统相同的机器 使用 yumdownloader 下载,建义将不同的软件包下载到单独的文件夹中

yumdownloader --resolve --destdir=./ pkg1 pkg2

2.下载好后将软件打个包上传到要升有的服务器(我是将 gcc,openssh,openssl-deve zlib 各自打包,然后打包到h.zip 结构如下。可作参考

➜  h pwd
/root/temp/h
➜  h ll
总用量 74M
-rw-r--r--  1 root   root    49M 112 14:11 gcc.tar.gz
-rw-r--r--  1 root   root   1.8M 1010 08:49 openssh-9.1p1.tar.gz
-rw-r--r--  1 root   root   7.3M 112 00:29 openssl-deve.tar.gz
-rw-r--r--  1 root   root   1.5M 109 17:54 zlib-1.2.12.tar.gz
➜  h 

3.升级步骤
注意:

依次执行以下命令 先开两个终端。升级不成功不要退出。退出就连不上了。

以下步骤基本能跑通。。如果缺少依赖。就缺少什么下载什么。

网上其他文章说的要安装telnet 防止升级失败。这个我没有用。也升级成功了。酌情使用吧。

# 1.解压安装包
unzip h.zip
cd h
tar -xzf gcc.tar.gz && tar -xzf  openssh-9.1p1.tar.gz && tar -xzf  openssl-deve.tar.gz && tar -xzf zlib-1.2.12.tar.gz

# 2.安装gcc 
cd gcc/ && rpm -ivh ./*rpm --force

# 3.安装zlib
cd ../zlib-1.2.12 &&./configure --prefix=/usr/local/zlib && make && make install && echo '/usr/local/zlib/lib' >> /etc/ld.so.conf  && ldconfig -v 

# 4.安装 openssl-devel
cd ../openssl-deve/ && rpm -ivh ./*rpm --force

# 5.安装openssh
cd ../openssh-9.1p1/ && ./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl && make && make install

# 6.配置sshd
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
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
cp -p contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chown -R root.root /var/empty/sshd
chmod 744 /var/empty/sshd

# 7.重启服务 此处在当前终端可能会卡住。时间久了如果没有返回 可从另一个终端看查看版本。偿试连接 。如果连接成功。则说明升有成功。
service sshd restart
ssh -V
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值