linux升级openssh及其相关问题解决方法
一、先升级ssl
tar -zxvf openssl-1.1.1.tar.gz
cd /openssl-1.1.1
./config shared zlib --prefix=/usr/local/openssl
make && make install
/*********************
1.如果没有gcc,要先安装gcc,一般yum都配置好的,执行以下命令
yum install -y gcc.x86_64
2.安装gcc后报下面的错,则执行 yum -y install zlib-devel 命令即可
gcc -I. -Icrypto/include -Iinclude -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/local/openssl/ssl\"" -DENGINESDIR="\"/usr/local/openssl/lib/engines-1.1\"" -DZLIB -DNDEBUG -MMD -MF crypto/comp/c_zlib.d.tmp -MT crypto/comp/c_zlib.o -c -o crypto/comp/c_zlib.o crypto/comp/c_zlib.c
crypto/comp/c_zlib.c:35:19: fatal error: zlib.h: No such file or directory
# include <zlib.h>
*******************/
备份原来的openssl
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
配置链接新版本
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
配置库搜索路径并测试
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf 配置动态库链接
/sbin/ldconfig -v
openssl version -a 查看版本
如果执行openssl version报错,可能是库文件位置不对,需做软连接
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
或者是
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
二、升级ssh
-- 下载最新版本 OpenSSH
从https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/下载最新版本openssh-8.2p1.tar.gz,将版本存放到某个目录下,没有特定要求,比如我放在了/home/ssh目录下
cd openssh-8.2p1
tar xzvf openssh-8.2p1.tar.gz
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl/lib/ 配置文件路径必须是/etc/ssh
把老版本的ssh放到另外一个目录,这步是关键,这样就不用卸载旧版本
mkdir /etc/sshbak 新建文件夹
mv /etc/ssh/* /etc/sshbak/ 备份原文件
编译源码包
make&&make install
编译安装成功后,进行配置
cp opensshd.init /etc/init.d/sshd 复制启动文件
chmod +x /etc/init.d/sshd 添加执行权限
修改配置文件 /etc/ssh/sshd_config
sed -i 's/#Port 22/Port 22/' /etc/ssh/sshd_config
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
重启ssh服务
service sshd restart 或者 /etc/init.d/sshd restart
-- 另外可以参考网址 https://blog.csdn.net/baidu_38844729/article/details/104510766 有其他报错解决办法