背景:漏洞扫描扫出一堆的 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 11月 2 14:11 gcc.tar.gz
-rw-r--r-- 1 root root 1.8M 10月 10 08:49 openssh-9.1p1.tar.gz
-rw-r--r-- 1 root root 7.3M 11月 2 00:29 openssl-deve.tar.gz
-rw-r--r-- 1 root root 1.5M 10月 9 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
版权声明:本文为qq_34919833原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。