升级环境
系统为 CentOS7.9 版本,OpenSSH 版本为默认的 7.4 版本
软件包准备
准备一台可以上网的 CentOS7.9 的虚拟机,下载 telnet 相关的 rpm 包离线使用
yum install --downloadonly --downloaddir=. xinetd telnet telnet-server
新版 OpenSSH 的 rpm 包可以使用 Github 上开源脚本打包
https://github.com/boypt/openssh-rpms
升级 openssh 前开启 telnet (可选)#
离线安装 telnet 服务,使用 rpm 命令安装 telnet
telnet 服务需要安装 telnet-server 和 xinetd 两个包,telnet 是客户端工具
启动 xinetd.service 和 telnet.socket 服务
systemctl restart xinetd.service telnet.socket
使用 root 登录需要在/etc/securetty
文件结尾添加 pts 终端
[root@localhost ~]# echo pts/0 >> /etc/securetty
[root@localhost ~]# echo pts/1 >> /etc/securetty
若服务器启用了防火墙,需要放行下 telnet
[root@localhost ~]# firewall-cmd --add-service=telnet
此时可以使用 telnet 登录服务器了
升级 OpenSSH#
由于打包成了 rpm 包,所以比起源码编译简单多了,可以使用 rpm 命令升级
使用 rpm -Uvh 直接升级即可
解压并安装 rpm 包,安装前最好将原来的 ssh 配置备份
[root@localhost ~]# tar xf openssh-9.9p1-1.el7.tar.gz
[root@localhost ~]# mv /etc/ssh /etc/ssh.bak
[root@localhost ~]# rpm -Uvh openssh*.rpm
安装完成新版 openssh 后重启 sshd, 并修改为开机启动
sshd 服务正常启动,但是有一个错误提示,openssh9.9 版本默认禁用了 dsa
/sbin/restorecon: lstat(/etc/ssh/ssh_host_dsa_key.pub) failed: No such...
修改配置文件取消加载 dsa_key
修改后重新加载配置并重启 sshd 服务,报错信息消失
openssh 升级完成