centos7的openssl和openssh升级到最新版本分别为3.0.5和9.0.p1

1.第一步,和网上众多博客说的一样,先安装Telnet,以防更新失败了,没有备用通过进行操作调整,这里我不在赘述了。

2.第二步,是安装镜像,OpenSSL只有官网的一种,而openssh官网提供了三种协议的镜像,我用的是国内的阿里云的镜像

 即是:

OpenSSL:

https://www.openssl.org/source/

openssh:

官网:

OpenSSH: for OpenBSD

阿里云:

https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/openssh-9.0.tar.gz

3.第三步就是具体操作的了,我这里分了四步,首先第一步就是下载镜像和编译用的公共组件:

wget --no-check-certificate https://www.openssl.org/source/openssl-3.0.5.tar.gz

wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz

wget http://zlib.net/zlib-1.2.12.tar.gz

以上就是需要下载主要的镜像和公共组件,过程中如果没有wget,可以自己用yum安装一个,如果是纯离线环境,自己再撘一个离线镜像yum源。接着就是yum安装一些在编译过程需要的其他的组件:

yum install -y perl-CPAN

 yum -y install pam-devel

 yum install distro-sync rpm-build zlib-devel openssl-devel gcc perl-devel pam-devel xmkmf libXt-devel gtk2-devel make -y

以上就是具体的命令,这里的组件看情况没有就装,我在给很多台服务器升级OpenSSL和openssh过程中基本80%都缺,所以这里就无脑yum install,其中perl-CPAN,安装完以后需要进行入其命令行界面安装IPC/cmd.pm模块,具体命令如下:

perl -MCPAN -e shell

根据自己的实际情况选择perl配置(我这里是无脑默认的)后,效果是如下截图:

 接着在这个命令行执行以下的命令,进行安装IPC/cmd.pm模块

install IPC/Cmd.pm

 到这里需要用yum安装组件就已经安装完了,剩下一个zlib需要通过源码安装,这里直接上命令:

tar -xvf zlib-1.2.12.tar.gz

cd zlib-1.2.12

./configure

 make && make install

4.第四步编译安装OpenSSL和openssh,前期的准备工作好了,安装编译比较简单,直接上命令:

openssl:

tar -xvf openssl-3.0.5.tar.gz

cd openssl-3.0.5

./config -fPIC --openssldir=/etc/pki/tls --prefix=/etc/pki/tls shared  zlib

 make && make install

备份:

mv /usr/bin/openssl /usr/bin/openssl.bak

 mv /usr/include/openssl /usr/include/openssl.bak

配置指向新版

ln -s /etc/pki/tls/bin/openssl /usr/bin/openssl

 ln -s /etc/pki/tls/include/openssl /usr/include/openssl

配置库文件

ln -sf /etc/pki/tls/lib64/libssl.so.3 /usr/lib64/libssl.so.3

 ln -sf /etc/pki/tls/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3

配置文件生效

 echo "/etc/pki/tls/lib64" >> /etc/ld.so.conf

 ldconfig -v

openssl 这里已经升级完成,通过openssl version -a 可以查看下当前openssl的版本信息:

注意,在安装升级OpenSSL ,先通过openssl version -a查看下当前这个版本的安装路径就是这个“OPENSSLDIR”属性指向的目录,这个目录就是你的升级的目录

openssh:

 tar -zxvf openssh-9.0p1.tar.gz

cd openssh-9.0p1

mv /etc/ssh /etc/ssh.bak  //备份配置文件

./configure --prefix=/usr/local/openssh9.0 --sysconfdir=/etc/ssh/  --with-md5-passwords --mandir=/usr/share/man --with-zlib --with-pam  --with-ssl-dir=/etc/pki/tls/

 make && make install

安装完成后通过这个命令检测一下配置文件:

 /usr/local/openssh9.0/sbin/sshd -t -f /etc/ssh/sshd_config

修改配置文件:

echo "X11Forwarding yes" >> /etc/ssh/sshd_config
echo "X11UseLocalhost no" >> /etc/ssh/sshd_config
echo "XAuthLocation /usr/bin/xauth" >> /etc/ssh/sshd_config
echo "UseDNS no" >> /etc/ssh/sshd_config
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
echo 'PubkeyAuthentication yes' >> /etc/ssh/sshd_config
echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
echo 'KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1' >> /etc/ssh/sshd_config

更新备份ssh相关执行脚本:

mv /usr/sbin/sshd /usr/sbin/sshd20220708.bak
cp -rf /usr/local/openssh9.0/sbin/sshd /usr/sbin/sshd
mv /usr/bin/ssh /usr/bin/ssh20220708.bak
cp -rf /usr/local/openssh9.0/bin/ssh /usr/bin/ssh
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen2022-07-08.bak
cp -rf /usr/local/openssh9.0/bin/ssh-keygen /usr/bin/ssh-keygen

更换sshd的启动脚本:

rm -rf /usr/lib/systemd/system/sshd.service

在解压的openssh安装包目录下执行:

cp contrib/redhat/sshd.init /etc/init.d/sshd

最后再执行:

systemctl enable sshd.service
systemctl daemon-reload
systemctl restart sshd

以上操作完成以后openssh已经升级完毕了,你可以通过ssh -V或者systemctl status sshd查看一下安装情况:

 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南国无红豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值