Centos7制作openssh9.0rpm包与升级

一、制作openssh9.0.rpm包

1、yum安装编译依赖的组件

yum install -y rpm-build gcc gcc-c++ glibc glibc-devel openssl-devel openssl prce pcre-devel zlib zlib-devel make wget krb5-devel pam-devel libX11-devel xmkmf libXt-devel initscripts libXt-devel imake gtk2-devel lrzsz

2、建立编译目录

mkdir -pv /root/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}

3、源码包下载到/root/rpmbuild/SOURCES

wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz

4、解压spec编译文件

cd /root/rpmbuild/SOURCES/
tar -xf openssh-9.0p1.tar.gz openssh-9.0p1/contrib/redhat/openssh.spec
mv openssh-9.0p1 /root/rpmbuild/SPECS

5、配置spec编译文件

a、不生成askpass包

cd /root/rpmbuild/SPECS/openssh-9.0p1/contrib/redhat/
sed -i -e "s/%global no_gnome_askpass 0/%global no_gnome_askpass 1/g" openssh.spec
sed -i -e "s/%global no_x11_askpass 0/%global no_x11_askpass 1/g" openssh.spec

b、解决openssl-devel < 1.1报错

sed -i '/openssl-devel < 1.1/s/^/#/' openssh.spec

6、编译openssh源码

rpmbuild -bb /root/rpmbuild/SPECS/openssh-9.0p1/contrib/redhat/openssh.spec

编译好的rpm包会在:/root/rpmbuild/RPMS/x86_64/ 

二、openssh升级

1、安全备份

为了防止升级过程中升级失败 ,配置telnet 协议也可以连接linux

yum install   telnet-server   xinetd  -y
systemctl enable xinetd telnet.socket

这是因为默认情况下,centos 系统是不允许 root 用户通过 telnet 方式远程登录系统的。如果要使 root 用户可以直接登录,需将以下内容添加到 /etc/securetty 文件末尾:

 echo -e 'pts/0\npts/1\npts/2\npts/3' >>/etc/securetty

重启服务telnet

systemctl  restart    xinetd telnet.socket

 验证结果

telnet localhost

将xshell 连接的协议也改为 telnet ,测试能否登录成功

2、ssh备份

mkdir /etc/sshconfig_backup
cp /etc/ssh/sshd_config /etc/sshconfig_backup/
cp /etc/pam.d/sshd /etc/sshconfig_backup/pam.d_sshd
cp -a /root/.ssh /etc/sshconfig_backup

3、把准备好的rpm包上传的需要升级的服务器上

4、升级openssh

mkdir tmp
tar xvf openssh9.0.tgz -C /app
rpm -Uvh  openssh*.rpm

5、恢复之前配置

cp /etc/sshconfig_backup/sshd_config /etc/ssh/sshd_config 
cp /etc/sshconfig_backup/pam.d_sshd /etc/pam.d/sshd

并加上PermitRootLogin yes允许root用户登录
sed -i "s/#PermitRootLogin yes/PermitRootLogin yes/g" /etc/ssh/sshd_config

因为之前openssh旧版本的 ssh_host*key 的权限太宽松,新版本要求严格 

chmod 600 /etc/ssh/*

sshd_config 最后一行添加KexAlgorithms

KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1

 可能遇到的问题:

xshell远程一直报密码错误或同网段服务器远程连接成功,xshell却连接失败。可能是配置文件出现问题

复制7.4 版本/etc/pam.d/sshd  覆盖

或sshd没有允许root权限登录修改sshd_config。permitrootlogin

6、关闭telnet

另外构建好的rpm我已经上传到csdn .可以无积分下载

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值