背景: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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)