获取安装包
通过网盘分享的文件:openssh-openssl-curl_update
链接: https://pan.baidu.com/s/12voImgavVSHZyJIwiqtaNA?pwd=h6uh 提取码: h6uh
--来自百度网盘超级会员v4的分享
安装telnet服务
升级openssh和openssl风险较大,telnet服务可以基于TELNET协议远程登录,在升级openssh之前我们需要安装telnet服务以避免ssh服务起不来导致连接不上机器- yum install telnet-server -y
- yum install xinetd -y
- systemctl enable xinetd.service
- systemctl enable telnet.socket
- systemctl start xinetd.service
- systemctl start telnet.socket
- systemctl status xinetd.service
- systemctl status telnet.socket
复制代码 telnet默认只能普通用户登录,root用户登录需要进行指定哪些终端设备允许 root 用户登录:- tail -n 4 /etc/securetty
- pts/0
- pts/1
- pts/2
- pts/3
- # pts 是 "pseudo-terminal slave"(伪终端从设备)的缩写,通常用于表示通过 SSH、Telnet 或其他远程连接工具创建的虚拟终端
- # 数字 0 到 4 表示具体的终端编号,意味着系统允许 root 用户通过前 4 个伪终端直接登录。
复制代码 测试登录:- telnet 8.159.128.153
- Trying 8.159.128.153...
- Connected to 8.159.128.153.
- Escape character is '^]'.
- Password:
- Login incorrect
- iZuf6c6umecwk5it5hv5b9Z login: root
- Password:
- Last login: Fri Aug 15 09:19:01 from ::ffff:116.62.210.211
- Welcome to Alibaba Cloud Elastic Compute Service !
- [root@iZuf6c6umecwk5it5hv5b9Z ~]#
复制代码 登录成功。
备份旧版本openssh和openssl
- # 查找需要备份的目录和文件
- whereis ssh sshd openssl
- ssh: /usr/bin/ssh /etc/ssh /usr/share/man/man1/ssh.1.gz
- sshd: /usr/sbin/sshd /usr/share/man/man8/sshd.8.gz
- openssl: /usr/bin/openssl /usr/lib64/openssl /usr/share/man/man1/openssl.1ssl.gz
- # 进行备份
- cp /usr/bin/ssh /usr/bin/ssh-bak
- cp -r /etc/ssh /etc/ssh-bak
- cp /usr/sbin/sshd /usr/sbin/sshd-bak
- cp /usr/bin/openssl /usr/bin/openssl-bak
- cp -r /usr/lib64/openssl /usr/lib64/openssl-bak
复制代码 编译安装 zlib
- cd /root/openssh-openssl-curl_update/
- tar -xf zlib-1.3.1.tar.gz
- cd zlib-1.3.1/
- ./configure --prefix=/usr/local/zlib-1.3.1
- make -j 4 && make install
复制代码 编译安装 openssl
- cd /root/openssh-openssl-curl_update/
- tar -xf openssl-1.1.1w.tar.gz
- cd openssl-1.1.1w/
- ./config --prefix=/usr/local/openssl-1.1.1w
- make -j 4 && make install
- ln -sf /usr/local/openssl-1.1.1w/lib/libcrypto.so.1.1 /usr/lib64/
- ln -sf /usr/local/openssl-1.1.1w/bin/openssl /usr/bin/openssl
- ln -sf /usr/local/openssl-1.1.1w/lib/libssl.so.1.1 /usr/lib64/
复制代码 编译安装openssh
安装
- cd /root/openssh-openssl-curl_update/
- tar -xf openssh-9.9p2.tar.gz
- cd openssh-9.9p2/
- ./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
- make -j 4 && make install
复制代码
如果以上报错,解决办法:之后重新编译。
替换旧版本执行命令文件
编译之后需要替换旧版本相关的执行文件,每个旧版本执行文件需要用which命令查看在哪个目录下。- which sshd
- /sbin/sshd
- cp /sbin/sshd /sbin/sshd-bak
- ln -sf /usr/local/openssh-9.9p2/sbin/sshd /sbin/sshd
- which ssh
- /bin/ssh
- cp /bin/ssh /bin/ssh-bak
- ln -sf /usr/local/openssh-9.9p2/bin/ssh /bin/ssh
- which scp
- /bin/scp
- cp /bin/scp /bin/scp-bak
- ln -sf /usr/local/openssh-9.9p2/bin/scp /bin/scp
- which sftp
- /bin/sftp
- cp /bin/sftp /bin/sftp-bak
- ln -sf /usr/local/openssh-9.9p2/bin/sftp /bin/sftp
- which ssh-add
- /bin/ssh-add
- cp /bin/ssh-add /bin/ssh-add-bak
- ln -sf /usr/local/openssh-9.9p2/bin/ssh-add /bin/ssh-add-bak
- which ssh-keygen
- /bin/ssh-keygen
- cp /bin/ssh-keygen /bin/ssh-keygen-bak
- ln -sf /usr/local/openssh-9.9p2/bin/ssh-keygen /bin/ssh-keygen
- which ssh-keyscan
- /bin/ssh-keyscan
- cp /bin/ssh-keyscan /bin/ssh-keyscan-bak
- ln -sf /usr/local/openssh-9.9p2/bin/ssh-keyscan /bin/ssh-keyscan
复制代码 配置使用旧配置文件
尽量保持原配置不变,应用旧版本的配置文件- mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
- cp /etc/ssh-bak/sshd_config /etc/ssh/sshd_config
- systemctl restart sshd
- systemctl enable sshd
- systemctl status sshd
复制代码 验证
- sshd -V
- OpenSSH_9.9p2, OpenSSL 1.1.1w 11 Sep 2023
复制代码 升级成功。
停止telnet服务
升级之后为了安全起见需要关闭telnet服务- systemctl stop xinetd.service
- systemctl stop telnet.socket
- systemctl disable xinetd.service
- systemctl disable telnet.socket
复制代码 注意
如果升级之后,curl命令和yum命令不可用,说明升级跨度版本过大,需要升级curl命令的依赖:- cd /root/openssh-openssl-curl_update/
- tar xf curl-8.8.0.tar
- cd curl-8.8.0/
- ./configure --prefix=/usr/src --with-ssl=/usr/local/openssl-1.1.1w
- make -j 4 && make install
- mv /lib64/libcurl.so.4.6.0 /lib64/libcurl.so.4.6.0_bak
- chmod +x /root/openssh-openssl-curl_update/curl-8.8.0/lib/.libs/libcurl.so.4.8.0
- mv /root/openssh-openssl-curl_update/curl-8.8.0/lib/.libs/libcurl.so.4.8.0 /lib64/libcurl.so.4.6.0
- which curl
- /bin/curl
- mv /bin/curl /usr/bin/curl.bak
- mv /root/openssh-openssl-curl_update/curl-8.8.0/src/.libs/curl /bin/curl
复制代码 来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |