直接升级openssh会由于OpenSSL 版本太低而报错 configure: error: OpenSSL >= 1.1.1 required,因此升级openssh前需要先升级OpenSSL
一、备份现有配置(备用,如果升级正常的话用不到)
cp -rf /etc/ssh /etc/ssh.bak
cp -rf /usr/bin/openssl /usr/bin/openssl.bak
cp -rf /etc/pam.d /etc/pam.d.bak
cp -rf /usr/lib/systemd/system /usr/lib/systemd/system.bak
二、安装telnet(如果远程连接的服务器,必须先安装好备份连接telnet)
1.安装telnet作为备份连接用
# yum install telnet-server telnet xinetd
2.启动telnet服务
# systemctl start telnet.socket
# systemctl start xinetd
# systemctl status telnet.socket
# systemctl status xinetd
3.修改配置
# vim /etc/pam.d/remote
注释掉这行
# auth required pam_securetty.so
4.重启telnet服务
# systemctl restart xinetd
# systemctl restart telnet.socket
5.客户端远程telnet连接测试,这一步必须测试成功了再进行下面的操作。
三、安装依赖和下载安装包
1 依赖及编译环境安装,安装相关的依赖项,如有遗漏再次安装
yum install -y vim gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel zlib-devel tcp_wrappers-devel tcp_wrappers libedit-devel perl-IPC-Cmd wget tar lrzsz nano
或者,安装相关的依赖项,如有遗漏再次安装
yum -y install gcc pam-devel zlib-devel openssl-devel net-tools
2 下载源码包
cd /home/file
wget https://www.zlib.net/zlib-1.3.1.tar.gz
wget https://www.openssl.org/source/openssl-3.3.1.tar.gz
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p2.tar.gz
3 解压源码包
cd /usr/local/src/
tar -zxvf zlib-1.3.1.tar.gz
tar -zxvf openssl-3.3.1.tar.gz
tar -zxvf openssh-9.8p1.tar.gz
四、安装Zlib
1.进入zlib-1.3.1目录
cd /usr/local/src/zlib-1.3.1
2.配置
./configure --prefix=/usr/local/src/zlib
3.编译及安装
make -j 4 && make test && make install
五、安装OpenSSL
1.进入openssl-3.3.1目录
cd /home/file/openssl-3.3.1
2.配置
./config --prefix=/usr #安装到/usr的话不用再配置环境变量,做软连接什么的了,如果安装其他路径的话还需要做第4步
3.编译及安装
make -j 4 && make install
4.配置(第3步如果安装的路径是/usr,则无需配置)
mv /usr/bin/openssl /usr/bin/oldopenssl
ln -s /usr/local/src/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/src/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
ln -s /usr/local/src/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
更新动态库
echo "/usr/local/src/openssl/lib64" >> /etc/ld.so.conf
ldconfig
5.查看更新后的版本
openssl version -v
六、安装OpenSSH
1 卸载旧版本OpenSSH服务
yum remove -y openssh
2.清理残余文件
rm -rf /etc/ssh/*
- 安装最新版Openssh服务,进入openssh-9.9p2目录
#cd /home/file/openssh-9.9p2
4.配置
./configure --prefix=/usr/local/src/ssh --sysconfdir=/etc/ssh --with-pam --with-zlib=/usr/local/src/zlib
(如果openssl安装的是其他路径,还需要加上--with-ssl-dir=/usr/local/src/openssl)
5.编译及安装
make -j 4 && make install
6.查看目录版本
/usr/local/src/ssh/bin/ssh -V
7.复制新ssh文件
cp -rf /home/file/openssh-9.9p2/contrib/redhat/sshd.init /etc/init.d/sshd
cp -rf /home/file/openssh-9.9p2/contrib/redhat/sshd.pam /etc/pam.d/sshd
cp -rf /usr/local/src/ssh/sbin/sshd /usr/sbin/sshd
cp -rf /usr/local/src/ssh/bin/ssh /usr/bin/ssh
cp -rf /usr/local/src/ssh/bin/ssh-keygen /usr/bin/ssh-keygen
8.允许root登录
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
echo 'PubkeyAuthentication yes' >> /etc/ssh/sshd_config
重启sshd服务
/etc/init.d/sshd restart 或则systemctl restart sshd
查看服务运行状态
/etc/init.d/sshd status 或则systemctl status sshd
添加开机启动
chkconfig --add sshd
查看升级后ssh版本
ssh -V
参考:https://blog.csdn.net/Jerry_zhy/article/details/141217681