linux 升级openssh9.9
OpenSSH 9.9p1 升级指南
1. 准备工作
1.1 下载所需软件包
需要准备以下三个软件包:
- OpenSSH 9.3p1:
openssh-9.9p1.tar.gz - zlib 1.2.12:
zlib-1.2.12.tar.gz - OpenSSL 1.1.1o:
openssl-1.1.1o.tar.gz
建议将这些文件下载到 /data/soft 目录下:
mkdir -p /data/soft
cd /data/soft
# 将下载的软件包放置在此目录
2. 解压软件包
cd /data/soft
tar --no-same-owner -zxvf zlib-1.2.12.tar.gz
tar --no-same-owner -zxvf openssl-1.1.1s.tar.gz
tar --no-same-owner -zxvf openssh-9.9p1.tar.gz
3. 安装依赖库
3.1 安装 zlib
cd /usr/local
mv zlib zlib-bak # 备份旧版本
cd /data/soft/zlib-1.2.12
./configure --prefix=/usr/local/zlib
make && make install
echo $? # 检查安装是否成功,返回0表示成功
3.2 安装 OpenSSL
cd /usr/local
mv ssl ssl-bak # 备份旧版本
cd /data/soft/openssl-1.1.1s
./config --prefix=/usr/local/ssl -d shared
make -j 4 && make install
echo $? # 检查安装是否成功
# 更新系统openssl链接
mv /usr/bin/openssl /usr/bin/openssl_bak
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
mv /usr/include/openssl/ /usr/include/openssl_bak
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
# 处理动态库问题
cp /usr/local/ssl/lib/libssl.so /usr/local/lib64/libssl.so
# 更新动态库配置
echo '/usr/local/ssl/lib' >> /etc/ld.so.conf
ldconfig -v
# 验证安装
openssl version
4. 安装 OpenSSH
# 备份原有配置
mkdir /etc/sshbak
mv /etc/ssh/* /etc/sshbak
# 编译安装
cd /data/soft/openssh-9.9p1
./configure --prefix=/usr/local/openssh9 \
--sysconfdir=/etc/ssh \
--with-zlib=/usr/local/zlib \
--with-ssl-dir=/usr/local/ssl
make -j 4 && make install
5. 配置 SSH 服务
5.1 修改 sshd_config
# 添加加密算法支持
echo "KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521" >> /etc/ssh/sshd_config
# 基本认证配置
echo 'PubkeyAuthentication yes' >> /etc/ssh/sshd_config
echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
5.2 替换系统文件
# 备份并替换关键文件
mv /usr/sbin/sshd /usr/sbin/sshd.bak
cp /usr/local/openssh9/sbin/sshd /usr/sbin/sshd
mv /usr/bin/ssh /usr/bin/ssh.bak
cp /usr/local/openssh9/bin/ssh /usr/bin/ssh
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
cp /usr/local/openssh9/bin/ssh-keygen /usr/bin/ssh-keygen
# 更新init脚本
mv /etc/init.d/sshd /etc/init.d/sshd-bak
cd /data/soft/openssh-9.9p1
cp contrib/redhat/sshd.init /etc/init.d/sshd
# 处理systemd配置
cd /usr/lib/systemd/system
mkdir bak-ssh
mv sshd* bak-ssh/
systemctl daemon-reload
6. 启动服务并验证
service sshd restart
ssh -V # 验证版本

浙公网安备 33010602011771号