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  # 验证版本

posted @ 2025-06-09 17:14  第一次运维的大鹅  阅读(787)  评论(0)    收藏  举报