centos7利用openssh的tar包制作rpm

centos7利用openssh的tar包制作rpm,第1张

背景:centos7版本自带的openssh最高的7.4版本的,而系统起码要7.9的版本才可以修复openssh的漏洞CVE-2018-15473,这样一来一般都是每台机器进行编译安装,领导询问是否有rpm的方式,所以决定自己制作7.9版本以上的rpm包。

用途:给内网不能联网的机器执行yum方式安装,并且使用centos7版本的私有rpm仓库安装openssh的依赖

方法:在一台能访问外网上的机器搭建私有仓库,之后用openssh的tar包制作rpm包

 mkdir -p /root/rpmbuild/SOURCES
 mkdir -p /root/rpmbuild/SPECS
 cp openssh-8.5p1.tar.gz /root/rpmbuild/SOURCES/
#安装必要的包
  yum install rpm-build zlib-devel openssl-devel gcc perl-devel pam-devel unzip libXt-devel imake gtk2-devel
  #备份关键文件
  cp /etc/pam.d/sshd /etc/pam.d/sshd-bak
  cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth-bak
  cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config-bak
  cp -p /etc/ssh/ssh_config /etc/ssh/ssh_config-bak
  #解压tar包
  cd /root/rpmbuild/SOURCES/
  tar -zxf openssh-8.5p1.tar.gz 
  #复制出官方提供的spec文件,rpm-build需要根据这个文件来制作rpm包
  cp openssh-8.5p1/contrib/redhat/openssh.spec .
  #关掉no_gnome_askpass no_x11_askpass这两个参数
  sed -i -e "s/%define no_x11_askpass 0/%define no_x11_askpass 1/g" openssh.spec
  sed -i -e "s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g" openssh.spec  

#开始制作rpm包
 rpmbuild -ba openssh.spec

这里有个报错:

解决方法:

[root@localhost x86_64]# vim /usr/lib/rpm/macros

将下面这行注释掉

 #%__check_files         %{_rpmconfigdir}/check-files %{buildroot}

保持退出,重新制作,完成了~!

 直接yum *.rpm即可

1.注意安装完要修改配置文件

vim /etc/ssh/sshd_config

PermitRootLogin yes

2.删除旧的ssh的key密钥文件,不删除会导致重启失败

rm -f /etc/ssh/ssh*key

重启或者手动生成新的文件

ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key

3.如果重启后发现账号密码都对但是就是无法登录的请还原/etc/pam.d/sshd文件

mv /etc/pam.d/sshd /etc/pam.d/sshd-bak2

mv /etc/pam.d/sshd-bak /etc/pam.d/sshd

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/790113.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存