宜都市转运信息网

Centos7.8怎么更新openssh? Centos升级openssh的技巧

2026-04-03 18:51:02 浏览次数:0
详细信息

方法一:通过 yum 升级(推荐)

1. 检查当前版本和可用版本

ssh -V
yum info openssh

2. 查看可用更新

yum check-update openssh*

3. 升级 OpenSSH

# 备份配置文件
cp -r /etc/ssh /etc/ssh.bak

# 升级所有组件
yum update openssh openssh-server openssh-clients openssh-askpass

4. 重启服务

systemctl restart sshd
systemctl status sshd

方法二:编译安装最新版本

当需要安装比仓库更新的版本时:

1. 准备工作

# 安装编译依赖
yum groupinstall "Development Tools" -y
yum install zlib-devel openssl-devel pam-devel libselinux-devel -y

# 备份现有配置
cp -r /etc/ssh /etc/ssh.backup
systemctl stop sshd

2. 下载和编译

# 查看最新版本:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
cd /usr/local/src
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz
tar -zxvf openssh-9.7p1.tar.gz
cd openssh-9.7p1

# 配置和编译
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-ssl-dir=/usr --with-md5-passwords
make

3. 安装和配置

# 备份旧版本
mv /usr/bin/ssh /usr/bin/ssh.old
mv /usr/sbin/sshd /usr/sbin/sshd.old

# 安装新版本
make install

# 恢复配置文件(使用备份的配置)
cp /etc/ssh.backup/sshd_config /etc/ssh/sshd_config

4. 更新服务配置

# 更新 systemd 服务文件
cp /usr/local/src/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd

# 或使用原有服务文件
systemctl daemon-reload

5. 启动服务

systemctl start sshd
systemctl enable sshd
ssh -V

方法三:使用第三方仓库(如 EPEL)

# 安装 EPEL 仓库
yum install epel-release -y

# 升级 OpenSSH
yum update openssh* --enablerepo=epel

重要注意事项

1. 升级前的准备工作

# 确保有控制台访问权限
# 开启第二个终端会话测试连接
# 备份所有重要数据
tar -czf ssh_backup_$(date +%Y%m%d).tar.gz /etc/ssh /usr/bin/ssh* /usr/sbin/sshd*

2. 配置注意事项

# 检查配置文件差异
diff /etc/ssh/sshd_config /etc/ssh.bak/sshd_config

# 常见需要手动合并的配置:
# PermitRootLogin
# PasswordAuthentication
# Port
# AllowUsers/DenyUsers

3. 故障排查

# 检查配置语法
sshd -t

# 查看详细日志
journalctl -u sshd -f
tail -f /var/log/secure

# 测试配置而不重启
sshd -T

4. 安全加固建议

升级后考虑:

# 禁用不安全的协议
echo "Protocol 2" >> /etc/ssh/sshd_config

# 禁用弱密码算法
echo "KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256" >> /etc/ssh/sshd_config

回滚方案

如果升级失败:

# 停止服务
systemctl stop sshd

# 恢复备份
cp -r /etc/ssh.backup/* /etc/ssh/

# 恢复旧版本二进制文件(如果编译安装)
mv /usr/bin/ssh.old /usr/bin/ssh
mv /usr/sbin/sshd.old /usr/sbin/sshd

# 重启服务
systemctl start sshd

验证升级

# 检查版本
ssh -V

# 测试连接
ssh -o BatchMode=yes -o ConnectTimeout=5 localhost echo "SSH升级成功"

# 检查服务状态
systemctl status sshd

建议:对于生产环境,先在测试服务器上验证升级过程,确保兼容性和稳定性。使用 yum 升级是最安全的方式,编译安装适合需要最新安全补丁的场景。

相关推荐