环境:
操作系统:oracle-linux7.9
openssl1.0.2k&openssh7.4p1升级到OpenSSH_9.7p1, OpenSSL 1.1.1t
原openssl版本
1、下载源码包
openssh下载地址:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
openssl下载地址:https://www.openssl.org/source/old/1.1.1/index.html
2、升级openssl,安装依赖
yum install gcc gcc-c++ pam* zlib*
# 备份原来的openssl
mv /usr/bin/openssl /usr/bin/openssl_bak
mv /usr/include/openssl /usr/include/openssl_bak #看实际环境有无
#进到源码包目录,解压源码包
tar xfz openssl-1.1.1t.tar.gz && cd openssl-1.1.1t
# 编译安装openssl
./config --prefix=/usr/local/openssl --shared
make && make install
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
ldconfig #生效
#参数说明:
--prefix 安装目录
--shared 共享库,方便其他程序使用
openssl升级完成
3、升级openssh
#进到源码包目录,解压源码包
tar -zxvf openssh-9.7p1.tar.gz
cd ../openssh-9.7p1/
# 备份原来的openssh
mv /etc/ssh /etc/ssh.old
mv /usr/bin/ssh /usr/bin/ssh.bak
mv /usr/sbin/sshd /usr/sbin/sshd.bak
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
#编译安装openssh,参数根据自己情况来写,我感觉用这几个就够了,网上其他人参数有多有少,大体够用就行
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-pam --with-zlib --with-md5-passwords
#参数说明
--prefix 安装目录
--sysconfdir 配置文件放到所在路径
--with-ssl-dir openssl库文件,选择实际环境安装的目录,如果按照上面升级了ssl,安装上面安装路径写。
--with-pam 启用用于认证的PAM模块
--with-zlib 启用zlib压缩,用于数据传输时的压缩和解压缩
--with-md5-passwords 指定了OpenSSH将使用MD5加密的方式来存储用户密码
make && make install
#拷贝启动脚本,之前启动服务启动报错,参考其他人文档,说要使用自带的脚本
cp contrib/redhat/sshd.init /etc/init.d/sshd
#移除原来的sshd启动文件
mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service_bak
#重新加载启动服务文件
systemctl daemon-reload
#到这里基本就算升级完成了,ssh -V可以看到升级的版本是最新版,但是一定要验证,重新开窗口,我这里能连接但就是报服务器拒绝了密码,死活登录不上,按照网上方法修改sshd配置
#修改sshd配置文件,
vim /etc/ssh/sshd_config
PermitRootLogin yes #只修改这个配置,重起sshd,远程还是报服务器拒绝密码
UsePAM yes #加上这个配置,重起sshd,可以远程进来
#重启服务
systemctl restart sshd
#测试连接
重新打开窗口SSH连接试试,看看有无问题
#最后查看版本
ssh -V