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

打印 上一主题 下一主题

主题 674|帖子 674|积分 2022

前述

OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。 OpenSSH 8.9版本至9.3之前版本存在安全漏洞,该漏洞源于将智能卡密钥添加到ssh-agent,会导致忽略每次转发的目标约束。
注:此操作步骤同样适用于Red Hat系所有 9.x 服务器系统。
注意事项:
在升级之前,建议打开多个SSH终端连接,并安装telnet服务器,确保在SSH服务器升级异常时,可以通过telnet服务器远程连接,进行紧急问题修复处理。
因为最开始需要直接卸载openssh,卸载完之后就连不上了,如有问题不好解决,所以建议多开几个SSH终端连接。
在升级前一定要备份原有的配置文件,以防出现意外情况。
安装一些必要的命令(需要用到的)

安装一些必要的命令(需要用到的)
  1. yum install wget gcc openssl-devel pam-devel rpm-build zlib-devel -y
复制代码
如果没有外网,可以选择在有网络的服务器上下载rpm安装包,yum离线下载安装包可参考:Centos7 yum如何下载离线安装包?(详解)
Centos 服务器升级OpenSSH到9.3p1


  1. wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1t.tar.gz --no-check-certificate
复制代码

解压并放到/usr/local/目录
  1. tar xf openssl-1.1.1t.tar.gz -C /usr/local
复制代码
1、编译安装openssl

  1. # 进入openssl目录
  2. cd /usr/local/openssl-1.1.1t
  3. # 编译安装openssl
  4. ./config shared --prefix=/usr/local/openssl
  5. make -j 4
  6. make install
复制代码
 为openssl做软连接
  1. echo "/usr/local/openssl/lib/" >> /etc/ld.so.conf
  2. # 加载配置文件
  3. ldconfig
  4. # 备份以前的openssl
  5. mv /usr/bin/openssl /usr/bin/openssl.old
  6. # 软连接,如果提示软连接已存在,记得备份软连接,然后在执行下面再次软连接,要不然会出问题,会导致root目录看不了,磁盘看不了,sftp连接不上;
  7. ln -sv /usr/local/openssl/bin/openssl /usr/bin/openssl
  8. ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
  9. ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
复制代码
软连接,如果提示软连接已存在,记得备份软连接,然后在执行上面再次进行软连接,要不然会出问题,会导致root目录看不了,磁盘看不了,sftp连接不上,等等一系列问题;
查看openssl版本
  1. openssl version -a
复制代码
2、查看、备份并卸载原有OpenSSH


  1. # 查看当前安装包
  2. [root@localhost ~]# rpm -qa | grep openssh
  3. openssh-clients-7.4p1-21.el7.x86_64
  4. openssh-7.4p1-21.el7.x86_64
  5. openssh-server-7.4p1-21.el7.x86_64
  6. # 查看当前OpenSSH版本(Centos7 默认使用OpenSSH_7.4p1)
  7. [root@localhost ~]# ssh -V
  8. OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
  9. # 备份现有的SSH
  10. [root@localhost ~]# mv /etc/ssh/ /etc/ssh.bak
  11. [root@localhost ~]# mv /usr/bin/ssh /usr/bin/ssh.bak
  12. [root@localhost ~]# mv /usr/sbin/sshd /usr/sbin/sshd.bak
  13. # 如果您是第一次升级,备份/etc/init.d/sshd时会不存在,不影响后续操作
  14. [root@localhost ~]# mv /etc/init.d/sshd /etc/init.d/sshd.bak
  15. mv: 无法获取'/etc/init.d/sshd' 的文件状态(stat): No such file or directory
  16. # 卸载现有OpenSSH
  17. rpm -e --nodeps $(rpm -qa |grep openssh)
复制代码
确保已经卸载成功(没有返回则卸载成功)
  1. rpm -qa | grep openssh
复制代码

3、下载OpenSSH二进制包

openssh官网:下载官网
  1. wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz
复制代码

4、解压并编译安装OpenSSH

  1. # 将下载的openssh安装包移动到/usr/local下
  2. [root@localhost ~]# mv openssh-9.3p1.tar.gz /usr/local/
  3. # 进入/usr/local/目录解压openssh9.3
  4. [root@localhost ~]# cd /usr/local/
  5. [root@localhost local]# tar xf openssh-9.3p1.tar.gz
  6. # 进入openssh目录
  7. [root@localhost local]# cd openssh-9.3p1
  8. # 编译安装
  9. [root@localhost openssh-9.3p1]# CCFLAGS="-I/usr/local/include" \
  10. LDFLAGS="-L/usr/local/lib64" \
  11. ./configure \
  12. --sysconfdir=/etc/ssh \
  13. --with-zlib \
  14. --with-ssl-dir=/usr/local/openssl
  15. [root@localhost openssh-9.3p1]# make -j 4
  16. [root@localhost openssh-9.3p1]# make install
复制代码
5、授权

  1. [root@localhost openssh-9.3p1]# chmod 600 /etc/ssh/*
复制代码
6、复制配置文件

  1. [root@localhost openssh-9.3p1]# cp -rf /usr/local/sbin/sshd /usr/sbin/sshd
  2. [root@localhost openssh-9.3p1]# cp -rf /usr/local/bin/ssh /usr/bin/ssh
  3. [root@localhost openssh-9.3p1]# cp -rf /usr/local/bin/ssh-keygen /usr/bin/ssh-keygen
  4. [root@localhost openssh-9.3p1]# cp -ar /usr/local/openssh-9.3p1/contrib/redhat/sshd.init /etc/init.d/sshd
  5. [root@localhost openssh-9.3p1]# cp -ar /usr/local/openssh-9.3p1/contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
复制代码
7、修改配置允许root用户远程登录

  1. # 修改配置允许root用户远程登录(允许使用密码登录,允许root远程登录,开启端口,赋予/etc/init.d/sshd权限)
  2. cat >>/etc/ssh/sshd_config<<EOF
  3. PermitRootLogin yes
  4. X11Forwarding yes
  5. PasswordAuthentication yes
  6. KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org
  7. EOF
  8. [root@localhost openssh-9.3p1]# sed -i "s/^#Port/Port/g" /etc/ssh/sshd_config
  9. [root@localhost openssh-9.3p1]# chmod 755 /etc/init.d/sshd
复制代码
8、启用sshd,生成服务配置文件,并重启服务

  1. # 启用sshd,生成服务配置文件
  2. [root@localhost openssh-9.3p1]# systemctl enable sshd
  3. sshd.service is not a native service, redirecting to /sbin/chkconfig.
  4. Executing /sbin/chkconfig sshd on
  5. # 重启服务
  6. [root@localhost openssh-9.3p1]# systemctl restart sshd
  7. # 查看服务状态
  8. [root@localhost openssh-9.3p1]# systemctl status sshd
复制代码

9、验证升级是否成功

  1. [root@localhost ~]# ssh -V
  2. OpenSSH_9.3p1, OpenSSL 1.0.2k-fips  26 Jan 2017
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

三尺非寒

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表