- 安装openssl
- 编译rpm包
- openssh9.0的rpm安装
- 开启telnet
- 备份文件
- 升级openssh
- 恢复备份文件
需要提前安装好openssl,在编译过程使用配置路径,就可以处理编译后openssl version和ssh -V显示得版本不一致问题。
如下用到安装包
openssl-1.1.1k-1.el7.x86_64.rpm
openssl-devel-1.1.1k-1.el7.x86_64.rpm
执行安装
rpm -e `rpm -qa | grep openssl | grep -v libs` --nodeps rpm -Uvh openssl* --nodeps cp /etc/ld.so.conf /etc/ld.so.conf.bak #sed -i '/openssl/d' /etc/ld.so.conf echo "/usr/local/openssl/lib">> /etc/ld.so.conf ldconfig openssl version
安装openssl后,可查看到新增得/usr/local/openssl目录,在编译过程修改openssh.spec配置。
编译rpm包源码包下载,建议复制url到浏览器,打开下载。
wget https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/8f2e41f3f7eaa8543a2440454637f3c3/x11-ssh-askpass-1.2.4.1.tar.gz
wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz
准备编译环境
yum install rpm-build gcc make wget openssl-devel krb5-devel pam-devel libX11-devel xmkmf libXt-devel initscripts
准备rpmbuild环境
mkdir -p /root/rpmbuild/SOURCES mkdir -p /root/rpmbuild/SPECS cp /root/openssh-9.0p1.tar.gz /root/rpmbuild/SOURCES/ cp /root/x11-ssh-askpass-1.2.4.1.tar.gz /root/rpmbuild/SOURCES/ tar -zxf openssh-9.0p1.tar.gz -C /opt cp /opt/openssh-9.0p1/contrib/redhat/openssh.spec /root/rpmbuild/SPECS/ chown sshd:sshd /root/rpmbuild/SPECS/openssh.spec c
修改/root/rpmbuild/SPECS/openssh.spec配置文件
注意如果增加openssl路径,会识别到新版本得openssl,在安装过程也会优先安装openssl1.1.1后,才能正常启动openssh,可以处理openssl version和ssh -V显示得版本不一致问题。
sed -i -e "s/%global no_gnome_askpass 0/%global no_gnome_askpass 1/g" /root/rpmbuild/SPECS/openssh.spec sed -i -e "s/%global no_x11_askpass 0/%global no_x11_askpass 1/g" /root/rpmbuild/SPECS/openssh.spec sed -i -e "s/^BuildRequires: openssl-devel < 1.1/#BuildRequires: openssl-devel < 1.1/g" /root/rpmbuild/SPECS/openssh.spec sed -i -e '/with-privsep-path/a --with-openssl-includes=/usr/local/openssl/include \n --with-ssl-dir=/usr/local/openssl \' /root/rpmbuild/SPECS/openssh.spec
在/root/rpmbuild/SPECS/目录中执行命令
rpmbuild -ba openssh.spec
rpm则生成在/root/rpmbuild/RPMS/x86_64目录中
ll /root/rpmbuild/RPMS/x86_64openssh9.0的rpm安装 开启telnet
telnet主要防止ssh操作失误导致服务无法登陆问题,telnet为明文登陆,确保ssh正常后,这里用已经准备好的telnet安装包操作
tar -xzvf telnet_rpm.tar.gz cd telnet_rpm rpm -ivh *.rpm cat telnet_install.txt > /etc/xinetd.d/telnet systemctl start telnet.socket systemctl start xinetd.service 安装过程要谨慎,要先备份原文件以及安装telnet,然后开启telnet并验证能否明文登陆,再着手更新openssh8.5版本备份文件
mkdir ssh_backfile cp -rf /etc/ssh ssh_backfile/ cp -rf /etc/pam.d/sshd ssh_backfile/
备份sshd.service启动文件,因为如果有执行yum remove就会出现删除启动文件,可以不备份,不过为了以防万一,多操作无所谓,有的启动文件目录不一定相同。
mkdir ssh_service cp -rf /usr/lib/systemd/system/sshd* ssh_service/升级openssh
systemctl stop sshd rpm -Uvh rpm-openssh/openssh* --nodeps恢复备份文件
cp -rf ssh_backfile/ssh/* /etc/ssh/ chmod -R 600 /etc/ssh/* cp -rf ssh_backfile/sshd /etc/pam.d/sshd systemctl restart sshd
至此更新openssh9.0已完成
建议自给自足,以下是本人制作好的rpm包:
https://download.csdn.net/download/weixin_43723044/85188277



