因为各种原因需要升级openssh,但是官方yum 或者apt 源更新没有那么快只能自行更新,每当更新的时候就非常头疼,生怕失败连不上服务器,尤其是生产环境。
使用脚本编译openssh为rpm包方式进行升级 就非常方便,编译完成也可以直接拷贝rpm包对其他机器进行升级,使用脚本 来自github https://github.com/boypt/openssh-rpms
升级ssh有一定风险性,如需升级请仔细看一遍文档再操作
1、首先安装下编译环境
yum groupinstall -y "Development Tools"
yum install -y imake rpm-build pam-devel krb5-devel zlib-devel libXt-devel libX11-devel gtk2-devel
2、下载脚本和源码并进行编译
wget https://github.com/boypt/openssh-rpms/archive/refs/heads/main.zip
unzip main.zip
cd openssh-rpms-main/
./pullsrc.sh
./compile.sh
3、查看编译的rpm包并进行安装
cd el7/RPMS/x86_64/
ls -la
查看目录下的rpm包,应该有4个包,都需要安装
openssh-9.4p1-1.el7.x86_64.rpm
openssh-clients-9.4p1-1.el7.x86_64.rpm
openssh-debuginfo-9.4p1-1.el7.x86_64.rpm
openssh-server-9.4p1-1.el7.x86_64.rpm
安装前务必做备份,
可以自行安装telnet等服务
或者给服务器做快照
否则出现问题将非常麻烦,
有可能出现无法连接服务器的风险!yum localinstall openssh*
4、安装完成之后重新设置ssh_host_rsa_key
安装完成之后千万不可直接断开ssh连接或者重启sshd 服务
需要完成下面步骤
cd /etc/ssh/
rm -rf ssh_host_*
/usr/bin/ssh-keygen -A
5、检查版本并重启sshd服务
ssh -V
systemctl restart sshd
重启sshd服务之后,先别急着把当前ssh 窗口关闭,另启一个窗口尝试链接
本人多次升级发现,大部分云服务器 按照教程可以直接升级成功。
物理服务器上自己安装的虚拟机可能会遇到 登录密码一直提示错误的情况
检查一下配置文件
vim /etc/ssh/sshd_config
其中有一行 :PermitRootLogin yes
需要解除注释,然后重启sshd 服务服务之后 再次尝试链接登录