Centos上OpenSSH7.4p1-9.0p1版本升级

注意事项

  • 特别注意:本次升级不能全程远程操作,请严格按照操作步骤进行执行
  • 推荐在本机进行升级操作,因为升级过程会连接不上服务器
  • 使用配置文件生效,一定要先停止sshd服务,否则会遇到root账号一直不能登录的问题

功能点

  • openssh版本升级:7.4p1->9.0p1

上传升级包

安装升级包

  • 一键升级脚本【openssh-9.0p1.sh】,执行过程需要再次确认,请输入y,完成确认

    tar zxvf /home/openssh-9.0p1.tar.gz -C /home/
    
    # etc backup
    mkdir -p /home/etc /home/service
    # 卸载的时候都会把配置文件以sshd_config.rpmsave的方式另存一份但是/etc/pam.d/sshd这个配置文件并没有另存,所以建议都备份一下。
    cp /etc/ssh/sshd_config /home/etc/sshd_config
    cp /etc/pam.d/sshd /home/etc/sshd
    
    # 删除旧版本的openssh
    yum remove openssh –y
    
    # 编译
    cd /home/openssh-9.0p1
    CCFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib64" ./configure
    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 /home/openssh-9.0p1/contrib/redhat/sshd.init /etc/init.d/sshd
    chmod u+x /etc/init.d/sshd
    
    # etc 恢复备份
    cp /home/etc/sshd /etc/pam.d/sshd
    mv /etc/ssh/sshd_config.rpmsave /etc/ssh/sshd_config
    mv /etc/ssh/ssh_config.rpmsave /etc/ssh/ssh_config
    
    # 编译出来的sshd放在/usr/local/sbin目录下,这里需要拷贝到执行目录
    cp /usr/local/sbin/sshd /usr/sbin/
    cp /usr/local/bin/ssh-keygen /usr/bin/
    
    # 添加添加自启服务ssh到开机启动项
    chkconfig --add sshd
    chkconfig sshd on
    
    # 检测一下服务是否运行成功
    chkconfig --list |grep sshd
    
    # 查看端口是存在非本地连接的客户端
    lsof -i:22
    
  • 修改配置文件

    # sshd正常运行状态下,执行如下命令会提示不支持的三个属性,根据提示注释掉对应的属性
    /usr/sbin/sshd -f /etc/ssh/sshd_config
    
    vi /etc/ssh/sshd_config
    # 找到三个配置属性值并注释
    #GSSAPIAuthentication yes
    #GSSAPICleanupCredentials no
    #UsePAM yes
    
    # 允许root登录,取消注释
    PermitRootLogin yes
    

登录服务器(非远程方式)

  1. 本节操作必须在服务器上进行,因为升级过程会连接不上服务器

  2. 断开ssh远程连接

  3. 登录服务器,将ssh远程登录的所有连接杀死(示例只有一个,实际情况有几个杀死几个):kill -9 29957

在这里插入图片描述
再执行此命令后:lsof -i:22,控制台没有任何ssh远程连接,才能进入下一步,否则,请清理完所有ssh远程连接再继续一下步

  1. 使用systemctl管理sshd

    systemctl restart sshd
    
  2. 暂停sshd

    systemctl stop sshd
    
  3. 必须确认22端口不再被使用。执行此命令后:lsof -i:22,控制台没有任何输出,才能进入下一步,否则,请重新结束sshd
    在这里插入图片描述

  4. 使用配置文件生效

    # 执行此命令会直接启动sshd服务,无需要再启动,可能通过命令:lsof -i:22,查看已经启动sshd的进程信息
    /usr/sbin/sshd -f /etc/ssh/sshd_config
    
  5. 升级完成后,使用root可正常登录服务器

确认升级结果

# ssh -V
OpenSSH_9.0p1, OpenSSL 1.1.1q  5 Jul 2022

参考资料

  1. Centos 升级 OpenSSH 到 9.0 - 腾讯云开发者社区-腾讯云 (tencent.com)

  2. openssh9.0p1升级后客户端连不上问题处理 —— 筑梦之路_筑梦之路的博客-CSDN博客_openssh升级导致远程连接失败

  3. 解决Permission denied (publickey)._Locutus的博客-CSDN博客

  4. How to Fix SSH Failed Permission Denied (publickey,gssapi-keyex,gssapi-with-mic) (phoenixnap.com)

  5. xxx.service is not a native service, redirecting to /sbin/chkconfig. - 编程猎人 (programminghunter.com)

  6. CentOS 7.x设置自定义开机启动,添加自定义系统服务 - 傅令江的光影色彩世界 (fulingjiang.cn)

  7. sshd_config OpenSSH SSH 进程配置文件配置说明 - 周人假的 - 博客园 (cnblogs.com)

  8. systemctl – 系统服务管理器 【转】 - the_tops - 博客园 (cnblogs.com)

  9. 编译安装openssl时报configure: error: OpenSSL library not found解决办法_墨语澄江的博客-CSDN博客_安装openssl报错

总结

  • 【参考资料.1、3、4】不是/etc/ssh或者*.ssh*下的文件权限问题
  • 【参考资料.2】不是新版再支持旧版算法的问题
  • 【参考资料.5】不是缺失软链接的问题
  • 虽然本次升级遇的不是权限问题,但是权限问题应当引用重视,当权限不对时,这种情况是会导致haoop免密登录失败的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值