确认源文件目录
文中所使用的源文件目录使用的是/data/software,到时候真实更新时所有/data/software开头的目录需要切换到自己的真实目录,并且文中所有解压源码操作默认是在/data/software目录下操作
下载安装包
1 2 3 4
| cd /data/software wget https://www.zlib.net/zlib-1.3.1.tar.gz wget https://www.openssl.org/source/openssl-3.2.1.tar.gz wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.9p2.tar.gz
|
备份旧版本以及相关配置
1 2 3
| sudo cp -rf /etc/ssh /etc/ssh.old # 备份旧的ssh配置文件 sudo cp -rf /usr/bin/openssl /usr/bin/openssl.old # 备份旧版本openssl sudo cp -rf /etc/pam.d /etc/pam.d.old # 备份旧的pam模块配置
|
安装zlib模块
1 2 3 4
| tar -zxvf zlib-1.3.1.tar.gz # 解压zlib模块源码 cd zlib-1.3.1/ ./configure --prefix=/data/software/zlib # 配置编译 以及安装目录 make && make install # 编译安装
|
安装openssl
1 2 3 4 5 6 7 8
| tar -zxvf openssl-3.2.1.tar.gz # 解压openssl cd openssl-3.2.1/ ./config --prefix=/data/software/openssl # 配置编译 以及安装目录 make -j && make install # 编译安装,这里编译时间比较长,建议根据自己服务器实际配置设置编译并行的任务数 sudo mv /usr/bin/openssl /usr/bin/openssl.old # 备份并删除旧版的openssl sudo ln -s /data/software/openssl/bin/openssl /usr/bin/openssl #创建新版本的链接 sudo ln -s /data/software/openssl/lib64/libssl.so.3 /usr/lib/libssl.so.3 # 如果系统有/usr/lib64需要放这个目录下 sudo ln -s /data/software/openssl/lib64/libcrypto.so.3 /usr/lib/libcrypto.so.3 # 如果系统有/usr/lib64需要放这个目录下
|
安装openssh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| tar -zxvf openssh-9.9p2.tar.gz #解压openssh cd openssh-9.9p2/ ./configure --prefix=/data/software/openssh --with-zlib=/data/software/zlib --with-ssl-dir=/data/software/openssl --with-pam --sysconfdir=/etc/ssh --mandir=/usr/share/man # 配置编译 以及安装目录 sudo rm -rf /etc/ssh # 删除旧版配置文件,前面已经备份过了 make && make install #编译安装 sudo mv /usr/bin/ssh /usr/bin/ssh.old # 备份旧版 sudo mv /usr/sbin/sshd /usr/sbin/sshd.old # 备份旧版 sudo vi /etc/ssh/sshd_config # 根据实际情况配置调整配置文件,如果需要root登录,一定要配置PermitRootLogin yes sudo ln -s /data/software/openssh/bin/ssh /usr/bin/ssh # 创建符号链接 sudo ln -s /data/software/openssh/sbin/sshd /usr/sbin/sshd # 创建符号链接 # 重载配置并启用服务 sudo systemctl daemon-reload sudo systemctl enable sshd # 这里可能会抛Failed to enable unit: Refusing to operate on linked unit file sshd.service,这个不用管,是因为之前的旧版本有,需要覆盖 sudo systemctl restart sshd # 重新创建ssh链接 # 查看版本 ssh -V # 正常应该输出 OpenSSH_9.9p2, OpenSSL 3.2.1
|