源码升级安装openssh9.9p2+openssl3.5.0+zlib 1.3.1
# 备份yum源
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
# 下载阿里云源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 删除所有缓存的包和头文件
yum clean all
# 生成yum数据源缓存
yum makecache
# 安装升级必备库
yum install -y gcc make perl pam-devel zlib-devel wget tar systemd-devel libedit-devel perl-IPC-Cmd perl-Data-Dumper perl-CPAN
# 解压源码包
tar -zxvf zlib-1.3.1.tar.gz tar -zxvf openssl-3.5.0.tar.gz tar -zxvf openssh-9.9p2.tar.gz
# 预编译zlib
./configure --prefix=/usr/local/zlib-1.3.1
# 编译安装zlib
make -j4 && make -j4 install
# 预编译openssl
./Configure --prefix=/usr/local/openssl-3.5.0 shared zlib
# 编译安装
make -j4 && make -j4 install
# 创建配置文件并写入库路径
touch /etc/ld.so.conf.d/openssl-3.5.0.conf
sed -i '1i /usr/local/openssl/lib64' /etc/ld.so.conf.d/openssl-3.5.0.conf
# 在/etc/ld.so.conf顶部添加优先级路径
sed -i '1i include /etc/ld.so.conf.d/openssl-3.5.0.conf' /etc/ld.so.conf
# 更新动态库缓存,如果刷新不成功可以加 -v 参数强制刷新
ldconfig
# 备份openssl(如要保留系统默认版本,可以跳过这步)
mv /usr/bin/openssl /usr/bin/openssl.bak
# 从安装目录复制openssl到系统目录(如要保留系统默认版本,可以跳过这步)
cp /usr/local/openssl/bin/openssl /usr/bin/
# 备份ssh配置文件
mv /etc/ssh/ /etc/ssh.bak
# 预编译openssh
./configure --prefix=/usr/local/openssh-9.9p2 --with-zlib=/usr/local/zlib-1.3.1 --with-ssl-dir=/usr/local/openssl-3.5.0 --sysconfdir=/etc/ssh --with-pam --with-systemd
# 编译安装openssh
make -j4 && make -j4 install
# 备份ssh守护进程
mv /usr/sbin/sshd /usr/sbin/sshd.bak
# 从安装目录复制守护进程到系统目录
cp /usr/local/openssh/sbin/sshd /usr/sbin/
# 备份ssh客户端相关进程
mv /usr/bin/scp /usr/bin/scp.bak mv /usr/bin/sftp /usr/bin/sftp.bak mv /usr/bin/ssh /usr/bin/ssh.bak mv /usr/bin/ssh-add /usr/bin/ssh-add.bak mv /usr/bin/ssh-agent /usr/bin/ssh-agent.bak mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak mv /usr/bin/ssh-keyscan /usr/bin/ssh-keyscan.bak
# 从安装目录复制客户端进程到系统目录
cp /usr/local/openssh/bin/scp /usr/bin/scp
cp /usr/local/openssh/bin/sftp /usr/bin/sftp
cp /usr/local/openssh/bin/ssh /usr/bin/ssh
cp /usr/local/openssh/bin/ssh-add /usr/bin/ssh-add
cp /usr/local/openssh/bin/ssh-agent /usr/bin/ssh-agent
cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
cp /usr/local/openssh/bin/ssh-keyscan /usr/bin/ssh-keyscan
# 查看ssh版本
sshd -V
# 完成
# 如过程遇到错误,可以参考以下命令排查问题
# 在用户当前的 PATH 环境变量中查找 sshd 可执行文件的路径。
which sshd
# 在系统预定义的标准目录中(如 /bin, /sbin, /usr/bin, /usr/sbin, /usr/share/man 等)查找 sshd 的二进制文件、源码和手册页。
whereis sshd
# 查看可执行文件或共享库的动态依赖关系
ldd /usr/sbin/sshd ldd /usr/bin/openssl idconfig -p | grep /usr/bin/openssl
# 在运行中的进程里,列出当前正在加载某库的进程。
yum -y install lsof lsof /usr/lib64/libssl.so.3
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号