操作系统:CentOS
1、下载安装包
1.1、下载OpenSSH安装包
https://www.openssh.com/
https://www.openssh.com/openbsd.html
下载地址:
http://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz
1.2、下载OpenSSL安装包
安装OpenSSH高版本需要OpenSSL高版本支持
下载地址:https://www.openssl.org/source/openssl-1.1.1w.tar.gz
把下载好的安装包上传到服务器的/data/server/soft目录
2、安装OpenSSH编译依赖包
yum install gcc openssl-devel zlib-devel pam-devel tcp_wrappers-devel libselinux-devel perl
3、关闭selinux
#如果不关闭,升级完成后sshd无法启动,报错:Starting sshd:/usr/sbin/sshd: error while loading shared libraries: libcrypto.so.1.1: cannot enable executable stack as shared object requires: Permission denied
#检查selinux状态,Enforcing 为开启,Disabled 为关闭
getenforce
#执行以下命令关闭selinux
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
4、安装OpenSSL
mkdir -p /data/server/openssl
cd /data/server/soft
tar zxvf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
./config -fPIC shared zlib --prefix=/data/server/openssl
make
make install
openssl version #查看当前版本
which openssl #查找安装目录
mv /usr/bin/openssl /usr/bin/openssl.bak #备份旧版
# 创建软连接
ln -s /data/server/openssl/bin/openssl /usr/bin/openssl
ln -s /data/server/openssl/include/openssl /usr/include/openssl
#向动态链接库配置文件添加新的OpenSSL库路径
echo "/data/server/openssl/lib" >> /etc/ld.so.conf
ldconfig -v #刷新动态链接库缓存,使新配置生效
openssl version #查看版本
5、安装OpenSSH
#查看当前OpenSSH版本
ssh -V
#备份配置文件(如果配置文件无变动,如禁止root远程登录、修改端口号、修改ssh超时时间等,可以不用备份)
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cp /etc/pam.d/sshd /etc/pam.d/sshd.bak
#删除当前OpenSSH安装包
rpm -qa | grep openssh
rpm -e --nodeps `rpm -qa | grep openssh`
#设置目录权限
chmod 0600 /etc/ssh/ssh_host_rsa_key
chmod 0600 /etc/ssh/ssh_host_ecdsa_key
chmod 0600 /etc/ssh/ssh_host_ed25519_key
#编译安装
cd /data/server/soft
tar -zxvf openssh-9.6p1.tar.gz
cd openssh-9.6p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/data/server/openssl --without-hardening --without-openssl-header-check
make
make install
#拷贝新版OpenSSH的启动脚本
cp -a /data/server/soft/openssh-9.6p1/contrib/redhat/sshd.init /etc/init.d/sshd
chmod u+x /etc/init.d/sshd
#还原配置文件
mv /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
mv /etc/pam.d/sshd.bak /etc/pam.d/sshd
#添加开机启动
chkconfig --add sshd
chkconfig sshd on
#重启OpenSSH
systemctl restart sshd
#查看版本
ssh -V
#要查看系统的启动项
systemctl list-unit-files --type=service
chkconfig --list
#说明,如果无法使用root账号ssh远程登录,需要修改配置文件
vi /etc/ssh/sshd_config
PermitRootLogin yes
:wq! #保持退出
systemctl restart sshd
至此,Linux下升级OpenSSH版本完成。