centos7的openssl和openssh升级到最新版本分别为3.0.5和9.0.p1
1.第一步,和网上众多博客说的一样,先安装Telnet,以防更新失败了,没有备用通过进行操作调整,这里我不在赘述了。2.第二步,是安装镜像,OpenSSL只有官网的一种,而openssh官网提供了三种协议的镜像,我用的是国内的阿里云的镜像 即是:OpenSSL:https://www.openssl.org/source/openssh:官网:OpenSSH: for OpenBSD阿里云:htt
1.第一步,和网上众多博客说的一样,先安装Telnet,以防更新失败了,没有备用通过进行操作调整,这里我不在赘述了。
2.第二步,是安装镜像,OpenSSL只有官网的一种,而openssh官网提供了三种协议的镜像,我用的是国内的阿里云的镜像
即是:
OpenSSL:
https://www.openssl.org/source/
openssh:
官网:
阿里云:
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查看一下安装情况:
更多推荐
所有评论(0)