Ubuntu20.04升级openssh(过程太难了)
一、环境介绍
升级openssh为了修复opensshs漏洞
1、vm虚拟机(操作系统为Ubuntu20.04)、可以上互联网
2、工具xshell
3、升级包openssl3.0.7、openssh9.3、zlib1.2.13(依赖包)
openssl
官方下载地址: https://www.openssl.org/source/
openssh
官方下载地址:https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
zlib
官方下载地址: http://www.zlib.net/
二、准备工做
1、将安装包上传至/root/目录下
2、安装telnet(为了避免使用ssh登录 异常断开,无法远程服务器)
apt-get install openbsd-inetd telnetd telnet -y #安装telnet
/etc/init.d/openbsd-inetd restart #启动服务
netstat -anpt|grep 23 # 查看telnet服务的默认端口是否启动;
telnet IP #测试登录
三 、开始升级
1、卸载原有openssh
apt-get remove openssh-server openssh-client -y
2、安装 libpam0g-dev和gcc
apt-get update -y
apt-get install libpam0g-dev -y #安装 libpam0g-dev
apt install build-essential -y #安装gcc
备注:备份 /etc/ssh、 /etc/init.d/ssh
mv /etc/ssh /etc/ssh.old
mv /etc/init.d/ssh /etc/init.d/ssh.old
3、安装zlib
cd /mnt/
tar zxvf /root/zlib-1.2.13.tar.gz #解压
cd zlib-1.2.13/ #
./configure --shared #
make && make install
4、安装openssl
cd /mnt/
tar zxvf openssl-3.0.7.tar.gz
cd openssl-3.0.7/
./config --shared zlib ##一定要加上shared 参数,要不在安装openssh的时候就无法找到
make && make install
##备份原来的openssl
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
##创建软链接到系统位置
ln -s /usr/local/bin/openssl /usr/bin/openssl
ln -s /usr/local/include/openssl /usr/include/openssl
##查看libssl.so位置
find / -name "libssl.so"
/mnt/openssl-3.0.7/libssl.so
/usr/local/lib64/libssl.so
##软链接openssl的lib库
mkdir -p /usr/local/openssl/lib64
ln -s /usr/local/lib64/libssl.so /usr/local/openssl/lib64/libssl.so
##将openssl 的lib 库添加到系统
echo “/usr/local/openssl/lib64” > /etc/ld.so.conf.d/openssl.conf
##使新添加的lib 被系统找到
ldconfig -v
##查看版本
openssl version ##可能会报错
##解决办法
#通过 find / -name libcrypto.so.3 和 find / -name libssl.so.3 查找到对应so文件的位置,并建立软连接
find / -name libcrypto.so.3
find / -name libssl.so.3
ln -s /usr/local/lib64/libssl.so.3 /usr/lib/libssl.so.3
ln -s /usr/local/lib64/libcrypto.so.3 /usr/lib/libcrypto.so.3
##openssl升级成功显示
openssl version
>>OpenSSL 3.0.7 1 Nov 2022 (Library: OpenSSL 3.0.7 1 Nov 2022)
5、安装openssh
cd /mnt/
tar zxvf openssh-9.0p1.tar.gz #
cd openssh-9.0p1/ #
whereis openssl #
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-ssl-dir=/usr/include/openssl --with-privsep-path=/var/lib/sshd
make && make install
##查看openssh 版本
ssh -V
cd /etc/ssh
mv sshd_config sshd_config.default
cp ../ssh.old/sshd_config ./
mv /etc/init.d/ssh.old /etc/init.d/ssh
systemctl unmask ssh
systemctl restart sshd
祝您顺利
参考:https://blog.youkuaiyun.com/weixin_37534043/article/details/120822689
https://blog.youkuaiyun.com/xujiamin0022016/article/details/87817124