在Linux中进行OpenSSH升级

本文详细指导如何在Linux系统中因OpenSSH的安全漏洞而进行升级,包括查看版本、安装依赖、备份旧版本、卸载旧包、编译安装新版本、配置sshd_config以及验证升级成功等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于OpenSSH有严重漏洞,因此需要升级OpenSSH到最新版本。

注意:在OpenSSH升级过程中千万不要断开服务器连接,不然的话,会出现断开后连接不了服务器的情况。

第一步,查看当前的OpenSSH服务版本。

命令:ssh -V

第二步,下载OpenSSH。

登录网址:OpenSSH: Release Notes下载最新版本OpenSSH安装包,即openssh-9.7p1.tar.gz,然后使用WinSCP将安装包上传到/opt文件夹中。

注意:卸载OpenSSH的rpm安装包之前一定要先把下载的OpenSSH安装包上传到服务器中。

第三步,安装、启动telnet,关闭安全文件,防止因卸载OpenSSH而导致无法登录主机。

# 安装、启动telnet

命令:yum -y install telnet

yum -y install telnet-server

systemctl enable telnet.socket

systemctl start telnet.socket

# 关闭安全文件

命令:mv /etc/security /etc/security.bak

第四步,安装升级OpenSSH需要的依赖包。

命令:yum -y install gcc keyutils-libs rpm-build krb5-devel libcom_err-devel libselinux-devel pam-* openssl-devel pkgconfig vsftpd zlib*

第五步,备份原有的SSH服务版本。

命令:mv /etc/ssh /etc/ssh.bak

mv /usr/bin/ssh /usr/bin/ssh.bak

mv /usr/sbin/sshd /usr/sbin/sshd.bak

第六步,卸载OpenSSH的rpm安装包。

命令:rpm -qa | grep openssh

# 普通删除模式

命令:rpm -e `rpm -qa | grep openssh`

# 如果使用普通删除模式命令删除时,提示有依赖的其它文件,则用强力删除模式命令对其进行强力删除

命令:rpm -e `rpm -qa | grep openssh` --nodeps

第七步,编译安装OpenSSH。

# 解压OpenSSH

命令:cd /opt

tar zxvf openssh-9.7p1.tar.gz

# 编译安装OpenSSH

命令:cd /opt/openssh-9.7p1/

./configure --sysconfdir=/etc/ssh

make && make install

第八步,查看OpenSSH命令的执行路径。

命令:which sshd

第九步,复制源码解压路径的开机启动脚本到/etc/init.d文件夹下。

命令:cp /opt/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/sshd

第十步,修改开机启动脚本/etc/init.d/sshd。

编辑/etc/init.d/sshd,对开机启动脚本做如下修改:

“SSHD=/usr/sbin/sshd”修改为“SSHD=/usr/local/sbin/sshd”;

“/usr/bin/ssh-keygen -A”修改为“/usr/local/bin/ssh-keygen -A”。

也可以使用命令来进行编辑开机启动脚本。

命令:sed -i '25cSSHD=/usr/local/sbin/sshd' /etc/init.d/sshd

sed -i '41c/usr/local/bin/ssh-keygen -A' /etc/init.d/sshd

第十一步,修改配置文件sshd_config,允许root用户通过ssh远程登录。

命令:sed -i "/#PermitRootLogin prohibit-password/c\PermitRootLogin yes" /etc/ssh/sshd_config

第十二步,复制源码解压路径的ssh-copy-id文件到文件夹/usr/local/bin/下,并增加ssh-copy-id文件的执行权限。

命令:cp /opt/openssh-9.7p1/contrib/ssh-copy-id /usr/local/bin/

chmod +x /opt/openssh-9.7p1/contrib/ssh-copy-id

第十三步,启动sshd服务并验证更新是否成功。

命令:systemctl daemon-reload

service sshd start

/usr/local/bin/ssh -V

若结果显示“OpenSSH_9.7p1”,则说明OpenSSH升级成功

十四步,开启安全文件。

命令:mv /etc/security.bak /etc/security

<think>嗯,用户想在Linux系统中升级OpenSSH,我得先回忆一下相关的步骤。首先,可能需要检查当前安装的OpenSSH版本,这样才能确定是否需要升级。用户可能用的是ssh -V命令来查看版本。然后,升级通常有两种方法:通过源码编译安装或者使用包管理器,比如yum或apt。不过,源码安装可能更灵活,适合需要最新版本的情况。 记得之前看到的引用里提到了下载源码包,比如用wget获取openssh-9.5p1.tar.gz。然后解压、配置、编译安装。不过编译前需要安装依赖包,比如gcc、openssl-devel这些,引用3里提到的那些开发包,用户可能需要先安装它们,否则配置阶段会报错。 另外,升级后需要处理配置文件,可能需要备份原有的sshd_config,然后复制新的配置文件。还有,确保SSH服务在系统启动时自动启用,用systemctl enable sshd。用户可能还需要重启服务,用systemctl restart sshd。 还有,需要注意SELinux的设置,引用1里提到要关闭SELinux或者设置为permissive模式,否则可能会遇到权限问题。用户可能需要编辑/etc/selinux/config文件,把SELINUX=disabled,然后重启系统。 安全方面,用户应该测试升级后的SSH连接是否正常,再断开当前会话,避免被锁在外面。防火墙设置也可能影响连接,所以得检查防火墙规则是否允许SSH端口。 可能的问题点:依赖项没装全导致编译失败,SELinux没关导致服务启动失败,或者配置文件没正确备份导致配置丢失。用户需要一步步按照指南操作,确保每一步都正确完成。 生成相关问题的话,用户可能会问如何检查当前版本,如何安装依赖,升级失败如何回滚,或者升级后的验证步骤。这些都是常见的后续问题,需要提前考虑到。</think>### Linux系统中OpenSSH升级指南 #### 一、环境准备 1. **检查当前版本** ```bash ssh -V ``` 输出示例:`OpenSSH_8.0p1, OpenSSL 1.0.2k-fips`[^1] 2. **安装编译依赖** ```bash yum -y install gcc pam-devel zlib-devel openssl-devel rpm-build ``` (Ubuntu/Debian系统替换为`apt install`命令)[^3] #### 二、源码编译安装 1. **下载源码包** ```bash wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.5p1.tar.gz --no-check-certificate ``` 2. **解压与编译** ```bash tar -zxvf openssh-9.5p1.tar.gz cd openssh-9.5p1 ./configure --prefix=/usr --sysconfdir=/etc/ssh make && make install ``` 3. **验证安装** ```bash ssh -V # 应显示新版本号 ``` #### 三、配置与权限设置 1. **备份配置文件** ```bash cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak ``` 2. **启用服务** ```bash systemctl restart sshd systemctl enable sshd ``` 3. **关闭SELinux(临时)** ```bash setenforce 0 ``` 永久关闭需修改`/etc/selinux/config`中的`SELINUX=disabled`[^1] #### 四、安全注意事项 1. **测试连接** 保持当前会话不关闭,新开终端测试SSH连接 2. **防火墙配置** 确保22端口开放: ```bash firewall-cmd --permanent --add-service=ssh firewall-cmd --reload ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jerry 二河小鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值