找回密码
 立即注册
首页 业界区 业界 升级openssh以及openssl

升级openssh以及openssl

盒礁泅 2025-8-10 19:16:02
获取安装包

通过网盘分享的文件:openssh-openssl-curl_update
链接: https://pan.baidu.com/s/12voImgavVSHZyJIwiqtaNA?pwd=h6uh 提取码: h6uh
--来自百度网盘超级会员v4的分享
安装telnet服务

升级openssh和openssl风险较大,telnet服务可以基于TELNET协议远程登录,在升级openssh之前我们需要安装telnet服务以避免ssh服务起不来导致连接不上机器
  1. yum install telnet-server -y
  2. yum install xinetd -y
  3. systemctl enable xinetd.service
  4. systemctl enable telnet.socket
  5. systemctl start xinetd.service
  6. systemctl start telnet.socket
  7. systemctl status xinetd.service
  8. systemctl status telnet.socket
复制代码
telnet默认只能普通用户登录,root用户登录需要进行指定哪些终端设备允许 root 用户登录:
  1. tail -n 4 /etc/securetty
  2. pts/0
  3. pts/1
  4. pts/2
  5. pts/3
  6. # pts 是 "pseudo-terminal slave"(伪终端从设备)的缩写,通常用于表示通过 SSH、Telnet 或其他远程连接工具创建的虚拟终端
  7. # 数字 0 到 4 表示具体的终端编号,意味着系统允许 root 用户通过前 4 个伪终端直接登录。
复制代码
测试登录:
  1. telnet 8.159.128.153
  2. Trying 8.159.128.153...
  3. Connected to 8.159.128.153.
  4. Escape character is '^]'.
  5. Password:
  6. Login incorrect
  7. iZuf6c6umecwk5it5hv5b9Z login: root
  8. Password:
  9. Last login: Fri Aug 15 09:19:01 from ::ffff:116.62.210.211
  10. Welcome to Alibaba Cloud Elastic Compute Service !
  11. [root@iZuf6c6umecwk5it5hv5b9Z ~]#
复制代码
登录成功。
备份旧版本openssh和openssl
  1. # 查找需要备份的目录和文件
  2. whereis ssh sshd openssl
  3. ssh: /usr/bin/ssh /etc/ssh /usr/share/man/man1/ssh.1.gz
  4. sshd: /usr/sbin/sshd /usr/share/man/man8/sshd.8.gz
  5. openssl: /usr/bin/openssl /usr/lib64/openssl /usr/share/man/man1/openssl.1ssl.gz
  6. # 进行备份
  7. cp /usr/bin/ssh /usr/bin/ssh-bak
  8. cp -r /etc/ssh /etc/ssh-bak
  9. cp /usr/sbin/sshd /usr/sbin/sshd-bak
  10. cp /usr/bin/openssl /usr/bin/openssl-bak
  11. cp -r /usr/lib64/openssl /usr/lib64/openssl-bak
复制代码
编译安装 zlib
  1. cd /root/openssh-openssl-curl_update/
  2. tar -xf zlib-1.3.1.tar.gz
  3. cd zlib-1.3.1/
  4. ./configure --prefix=/usr/local/zlib-1.3.1
  5. make -j 4 && make install
复制代码
编译安装 openssl
  1. cd /root/openssh-openssl-curl_update/
  2. tar -xf openssl-1.1.1w.tar.gz
  3. cd openssl-1.1.1w/
  4. ./config --prefix=/usr/local/openssl-1.1.1w
  5. make -j 4 && make install
  6. ln -sf /usr/local/openssl-1.1.1w/lib/libcrypto.so.1.1 /usr/lib64/
  7. ln -sf /usr/local/openssl-1.1.1w/bin/openssl /usr/bin/openssl
  8. ln -sf /usr/local/openssl-1.1.1w/lib/libssl.so.1.1 /usr/lib64/
复制代码
编译安装openssh

安装
  1. cd /root/openssh-openssl-curl_update/
  2. tar -xf openssh-9.9p2.tar.gz
  3. cd openssh-9.9p2/
  4. ./configure --prefix=/usr/local/openssh-9.9p2 --sysconfdir=/etc/ssh --with-zlib=/usr/local/zlib-1.3.1  --with-ssl-dir=/usr/local/openssl-1.1.1w --with-pam --without-openssl-header-check
  5. make -j 4 && make install
复制代码
1.png

如果以上报错,解决办法:
  1. yum -y install pam-devel
复制代码
之后重新编译。
替换旧版本执行命令文件

编译之后需要替换旧版本相关的执行文件,每个旧版本执行文件需要用which命令查看在哪个目录下。
  1. which sshd
  2. /sbin/sshd
  3. cp /sbin/sshd /sbin/sshd-bak
  4. ln -sf /usr/local/openssh-9.9p2/sbin/sshd /sbin/sshd
  5. which ssh
  6. /bin/ssh
  7. cp /bin/ssh /bin/ssh-bak
  8. ln -sf /usr/local/openssh-9.9p2/bin/ssh /bin/ssh
  9. which scp
  10. /bin/scp
  11. cp /bin/scp /bin/scp-bak
  12. ln -sf /usr/local/openssh-9.9p2/bin/scp /bin/scp
  13. which sftp
  14. /bin/sftp
  15. cp /bin/sftp /bin/sftp-bak
  16. ln -sf /usr/local/openssh-9.9p2/bin/sftp /bin/sftp
  17. which ssh-add
  18. /bin/ssh-add
  19. cp /bin/ssh-add /bin/ssh-add-bak
  20. ln -sf /usr/local/openssh-9.9p2/bin/ssh-add /bin/ssh-add-bak
  21. which ssh-keygen
  22. /bin/ssh-keygen
  23. cp /bin/ssh-keygen /bin/ssh-keygen-bak
  24. ln -sf /usr/local/openssh-9.9p2/bin/ssh-keygen /bin/ssh-keygen
  25. which ssh-keyscan
  26. /bin/ssh-keyscan
  27. cp /bin/ssh-keyscan /bin/ssh-keyscan-bak
  28. ln -sf /usr/local/openssh-9.9p2/bin/ssh-keyscan /bin/ssh-keyscan
复制代码
配置使用旧配置文件

尽量保持原配置不变,应用旧版本的配置文件
  1. mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
  2. cp /etc/ssh-bak/sshd_config /etc/ssh/sshd_config
  3. systemctl restart sshd
  4. systemctl enable sshd
  5. systemctl status sshd
复制代码
验证
  1. sshd -V
  2. OpenSSH_9.9p2, OpenSSL 1.1.1w  11 Sep 2023
复制代码
升级成功。
停止telnet服务

升级之后为了安全起见需要关闭telnet服务
  1. systemctl stop xinetd.service
  2. systemctl stop telnet.socket
  3. systemctl disable xinetd.service
  4. systemctl disable telnet.socket
复制代码
注意

如果升级之后,curl命令和yum命令不可用,说明升级跨度版本过大,需要升级curl命令的依赖:
  1. cd /root/openssh-openssl-curl_update/
  2. tar xf curl-8.8.0.tar
  3. cd curl-8.8.0/
  4. ./configure --prefix=/usr/src --with-ssl=/usr/local/openssl-1.1.1w
  5. make -j 4 && make install
  6. mv /lib64/libcurl.so.4.6.0 /lib64/libcurl.so.4.6.0_bak
  7. chmod +x /root/openssh-openssl-curl_update/curl-8.8.0/lib/.libs/libcurl.so.4.8.0
  8. mv  /root/openssh-openssl-curl_update/curl-8.8.0/lib/.libs/libcurl.so.4.8.0  /lib64/libcurl.so.4.6.0
  9. which curl
  10. /bin/curl
  11. mv /bin/curl /usr/bin/curl.bak
  12. mv /root/openssh-openssl-curl_update/curl-8.8.0/src/.libs/curl /bin/curl
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册