记一次手动将OpenSSH从7.4升级到9.3的过程

这篇具有很好参考价值的文章主要介绍了记一次手动将OpenSSH从7.4升级到9.3的过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

收到通知说服务器组件存在漏洞

升级openssh到最新版本,服务器,运维,linux

服务器版本:CentOS 7.9.2009 x86_64

目前SSH版本:OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017

使用yum升级yum update -y openssh

最新版本还是:OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017

接下来尝试手动升级

前置操作

为了避免升级过程中出现的意外导致服务器无法进行连接,建议对重要的内容先进行备份

创建快照

在主机服务商那里为主机创建快照,防止最糟糕的事情发生

备份配置文件

备份 /etc/pam.d/sshd 文件

[root@bogon ~]# mv /etc/pam.d/sshd /etc/pam.d/sshd-bak
[root@bogon ~]# ls -l /etc/pam.d/sshd*
-rw-r--r-- 1 root root 904 Nov 25  2021 /etc/pam.d/sshd-bak

安装telnet

升级过程中会卸载旧版本 ssh 导致远程无法连接,所以先安装一个 telnet

安装

rpm -q telnet-server
#检查是否安装了telnet服务端
rpm -q telnet
#检查是否安装了telnet客户端

提示package telnet-server is not installed表示未安装

yum install telnet-server  -y
#安装telnet服务端

yum install telnet -y
#安装telnet客户端

启动

systemctl enable telnet.socket
#设置开机启动该

systemctl start telnet.socket
#打开服务

防火墙开放23端口

使用telnet ip地址进行连接登录

允许root登录

默认系统不允许root用户使用telnet远程登陆

echo 'pts/0' >>/etc/securetty
echo 'pts/1' >>/etc/securetty

可能还需要添加下 pts/3 和 pts/4

输入正确的密码还是不能登录

主机端执行:tail /var/log/secure

看到了access denied: tty 'pts/3' is not secure !

再添加一个

echo 'pts/3' >>/etc/securetty

重启了telnet后再登录一切正常了

开始升级

执行下方操作前,请确认telnet外部连接正常

下载升级包

可用版本下载

http://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/

地址中列出了可用的版本升级文件,我本次计划升级到9.3,使用的是openssh-9.3p1.tar.gz

可以使用本地网络下载压缩包后上传到服务器opt目录,也可以在服务器内执行命令下载

cd /opt/
wget http://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz

解压

tar -zxvf openssh-9.3p1.tar.gz

cd openssh-9.3p1

安装依赖

安装

务必确认已快照,已配置telnet

备份配置文件

cp /etc/ssh/sshd_config sshd_config.backup
cp /etc/pam.d/sshd sshd.backup

卸载旧版本

rpm -e --nodeps `rpm -qa | grep openssh`

安装依赖

yum -y install gcc pam-devel zlib-devel openssl-devel

编译配置

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-md5-passwords --with-pam

编译安装

make && make install

调整文件权限

chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key

复制配置文件

cp -a contrib/redhat/sshd.init /etc/init.d/sshd
chmod u+x /etc/init.d/sshd

还原配置文件

mv ../sshd.backup /etc/pam.d/sshd
mv ../sshd_config.backup /etc/ssh/sshd_config

添加开机启动

chkconfig --add sshd
chkconfig sshd on

重启sshd

systemctl restart sshd
#重启

ssh -V
#查看版本

成功升级到OpenSSH_9.3p1, OpenSSL 1.0.2k-fips 26 Jan 2017

登录验证,如果出错,可以查看踩坑记录

踩坑记录

账号密码错误

未开启root登录

检查/etc/ssh/sshd_config是否存在

PermitRootLogin yes

账户锁定

使用正确的账号密码登录,始终返回账号密码错误

检查root账户是否被锁定 cat /etc/shadow | grep root

root:$6$88xxxxxxxxxxx:::

如果密码前有两个!!(如root:!!$6$884zQxxx)则表示锁定

解除root锁定passwd -u root

Unlocking password for user root.
passwd: Success

WinSCP无法连接

连接被关闭了
无法初始化SFTP协议。主机是SFTP服务器吗?

修改连接配置,将文件协议从SFTP修改为SCP

PS:升级了两台服务器,只有一台有这个问题.这不是一个很好的解决方案,但是我没找到原因(大牛可以指正)

无法登录

在服务器中查看状态service sshd status得到了下面得到Failed记录

Apr 21 09:01:15 bogon sshd[542]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=x.x.x.x  user=root
Apr 21 09:01:15 bogon sshd[542]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Apr 21 09:01:16 bogon sshd[542]: Failed password for root from x.x.x.x port 56012 ssh2
Apr 21 09:01:24 bogon sshd[542]: Accepted password for root from x.x.x.x port 56012 ssh2

以下解决方案摘自阿里云

检查这三个配置文件,是否限制了登录(如pam_succeed_if.so uid >= 1000

文件 功能说明
/etc/pam.d/login 控制台(管理终端)对应的配置文件。
/etc/pam.d/sshd SSH远程登录对应的配置文件。
/etc/pam.d/system-auth 系统全局配置文件

如果有限制,注释相关配置,或者修改策略文章来源地址https://www.toymoban.com/news/detail-688617.html

auth        required      pam_succeed_if.so uid <= 1000      # 修改策略
# auth        required      pam_succeed_if.so uid >= 1000    # 注释相关配置

到了这里,关于记一次手动将OpenSSH从7.4升级到9.3的过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux】 OpenSSH_9.3p1 升级到 OpenSSH_9.3p2(亲测无问题,建议收藏)

    👨‍🎓 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 🐋 希望大家多多支持,我们一起进步!😄 🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏

    2024年02月08日
    浏览(53)
  • 【Linux】 OpenSSH_9.3p1 升级到 OpenSSH_9.6p1(亲测无问题,建议收藏)

    👨‍🎓 博主简介   🏅CSDN博客专家   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 🐋 希望大家多多支持,我们一起进步!😄 🎉如果文章对你有帮助的话,欢迎 点赞

    2024年04月10日
    浏览(46)
  • 【Linux】 OpenSSH_9.3p2 升级到 OpenSSH_9.4p1(亲测无问题,建议收藏)

    👨‍🎓 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 🐋 希望大家多多支持,我们一起进步!😄 🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏

    2024年02月05日
    浏览(42)
  • 【Linux】 OpenSSH_9.3p1 升级到 OpenSSH_9.5p1(亲测无问题,建议收藏)

    👨‍🎓 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 🐋 希望大家多多支持,我们一起进步!😄 🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏

    2024年02月05日
    浏览(62)
  • 在 ubuntu 18.04 上使用源码升级 OpenSSH_7.6p1到 OpenSSH_9.3p1

    1、检查系统已安装的当前 SSH 版本 使用命令 ssh -V 查看当前 ssh 版本,输出如下: 2、安装依赖,依次执行以下命令 sudo apt update sudo apt install build-essential zlib1g-dev libssl-dev 3、设置环境 为了创建一个合适的环境来安装 OpenSSH 服务,需要创建一个安装环境 sudo mkdir /var/lib/sshd sudo

    2024年02月13日
    浏览(53)
  • 【Linux】 OpenSSH_7.4p1 升级到 OpenSSH_9.4p1(亲测无问题,建议收藏)

    👨‍🎓 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 🐋 希望大家多多支持,我们一起进步!😄 🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏

    2024年02月05日
    浏览(52)
  • 【Linux】 OpenSSH_7.4p1 升级到 OpenSSH_8.7p1(亲测无问题,建议收藏)

    👨‍🎓 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 🐋 希望大家多多支持,我们一起进步!😄 🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏

    2024年02月05日
    浏览(47)
  • 【Linux】 OpenSSH_7.4p1 升级到 OpenSSH_9.6p1(亲测无问题,建议收藏)

    👨‍🎓 博主简介   🏅CSDN博客专家   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 🐋 希望大家多多支持,我们一起进步!😄 🎉如果文章对你有帮助的话,欢迎 点赞

    2024年04月17日
    浏览(52)
  • Linux操作系统升级低版本的OpenSSH到9.3的高版本

    OpenSSH 9.3之前的版本存在各种各样的安全漏洞,为此,我们需要将OpenSSH升级到最新的9.3的版本。 执行:ssh -V,我们可以查看当前的openssh版本  为了避免升级过程中出现意外而导致服务器无法正常使用,建议操作前先对服务器进行快照备份!!! 1. 备份原有pam.d下的sshd文件

    2024年02月07日
    浏览(45)
  • 史诗级详细离线更新centos系统的openssh,升级到9.3p1!!

    前言 一、openssh是什么? 二、更新步骤 1.查看相关组件版本是否存在(代码包已全部打包) 2.进行openssh离线更新 总结(安装时可能出现的问题等)   OpenSSH是 Secure SHell(安全外壳协议,简称SSH)协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件

    2024年02月14日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包