默认采用的是OpenSSH_7.4p1这个版本,但是有些漏洞扫描设备扫描出OpenSSH_7.4p1版太低,不安全类似的问题,解决方式呢,就是升级OpenSSL更高版本,考虑到 不是一两台服务器,使用源码包方式安装太费劲了,建议使用rpm包导入后直接安装。
建议先安装telnet服务 到最后不至于连服务器都连不上了!!
1、安装rpm-build和openssh依赖包
yum install rpm-build zlib-devel openssl-devel gcc perl-devel pam-devel unzip libXt-devel imake gtk2-devel openssl-libs -y
2、创建目录
mkdir -p /root/rpmbuild/{SOURCES,SPECS}
cd /root/rpmbuild/SOURCES
3、按照需求上外网下载对应版本
下载源
wget /pub/OpenBSD/OpenSSH/portable/openssh-8.
wget /repo/pkgs/openssh/x11-ssh-askpass-1.2.4./8f2e41f3f7eaa8543a2440454637f3c3/x11-ssh-askpass-1.2.4.
4、解压包和其他操作 复制粘贴即可
tar zxvf openssh-8. openssh-8.0p1/contrib/redhat/
openssh-8.0p1/contrib/redhat/
cp openssh-8.0p1/contrib/redhat/ ../SPECS/
chown sshd:sshd /root/rpmbuild/SPECS/
cp /root/rpmbuild/SPECS/ /root/rpmbuild/SPECS/openssh.spec_def
5、修改文件
sed -i -e "s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g" /root/rpmbuild/SPECS/
sed -i -e "s/%define no_x11_askpass 0/%define no_x11_askpass 1/g" /root/rpmbuild/SPECS/
6、生成rpm包
cd /root/rpmbuild/SPECS/
rpmbuild -ba
//生成时报错
error: Failed build dependencies:
openssl-devel < 1.1 is needed by openssh-8.0p1-1.el7.x86_64
//解决方法:
[root@localhost SPECS]# pwd
/root/rpmbuild/SPECS
[root@localhost SPECS]# vi
#BuildRequires: openssl-devel < 1.1 //定位到这行 注释掉即可!
编译完成后,会产生4个rpm包,放在/root/rpmbuild/RPMS/x86_64目录下。在服务器上,创建一个openssh文件夹,把这四个包拷贝过来,执行yun -y install ./* 即可。
7、安装测试
[root@localhost x86_64]# pwd
/root/rpmbuild/RPMS/x86_64
[root@localhost x86_64]# yum -y install *
[root@localhost x86_64]# ssh -V
OpenSSH_8.0p1, OpenSSL 1.0.2k-fips 26 Jan 2017
//权限设置
cd /etc/ssh/
chmod 400 ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key
//openssh8.0版本默认root不可用远程登入,编辑配置文件配置允许root远程登入
vi /etc/ssh/sshd_config
..... //添加或者更改为下面内容即可!
PubkeyAuthentication yes
PasswordAuthentication yes
PermitRootLogin yes
.....
[root@localhost ~]# sshd -t
[root@localhost ~]# systemctl restart sshd
//最后一步 openssh会受selinux的限制 所以要关闭selinux
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
最后测试连接的时候一定要多打开几个窗口 以防万一root用户登不上,或者安装telnet服务,别把自己害了,给多留点后路!!
我还写了一个基于没有网络离线安装的脚本
注:这个脚本是基于我的环境编写的,仅供参考
#!/bin/bash
#### 配置YUM源####
clear
echo -e "\t\t########################"
echo -e "\t\t# 配置YUM仓库 #"
echo -e "\t\t########################"
sleep 1
echo -e "启动脚本....................................\033[32m [成功] \033[0m"
sleep 1
echo -e "备份YUM源中.................................\033[33m [稍等] \033[0m"
sleep 3
mkdir /etc// &>/dev/null
mv /etc//* /etc/// &>/dev/null
id &>/dev/null
if [ $? -eq 0 ];then
echo -e "备份YUM源...................................\033[32m [成功] \033[0m"
else
echo -e "备份YUM源...................................\033[31m [失败] \033[0m"
fi
sleep 1
echo -e "配置YUM源中.................................\033[33m [稍等] \033[0m"
sleep 1
cat > /etc// <<EOF
[local]
name=localyum
baseurl=ftp://10.10.14.51/pub/centos7.9
enabled=1
gpgcheck=0
EOF
yum clean all &>/dev/null
if [ $? -eq 0 ];then
echo -e "配置YUM源...................................\033[32m [成功] \033[0m"
else
echo -e "配置YUM源...................................\033[31m [失败] \033[0m"
fi
#### 配置install openssh8.0 ####
clear
echo -e "\t\t########################"
echo -e "\t\t# 配置安装openssh #"
echo -e "\t\t########################"
echo -e "安装依赖包....................................\033[33m [稍等] \033[0m"
RPMS='zlib-devel openssl-devel gcc perl-devel pam-devel unzip'
yum install -y $RPMS &>/dev/null
read -p "请输入存放RPM包绝对路径目录位置:" path
if [ -d $path ];then
echo -e "判断文件是否存在.......................... \033[032m [存在] \033[0m"
cd $path
yum -y install * &>/dev/null
if [ $? -eq 0 ];then
echo -e "安装成功...................................\033[032m [成功] \033[0m"
else
echo -e "安装失败...................................\033[031m [失败] \033[0m"
fi
else
echo -e "判断文件是否存在......................... \033[031m [不存在] \033[0m"
fi
sleep 2
#### 其他 配置####
clear
echo -e "\t\t########################"
echo -e "\t\t# 其他 配置 #"
echo -e "\t\t########################"
cd /etc/ssh/
chmod 400 ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key
if [ $? -eq 0 ];then
echo -e "调整权限....................................\033[032m [成功] \033[0m"
else
echo -e "调整权限....................................\033[031m [失败] \033[0m"
fi
sleep 2
clear
echo -e "\t\t########################"
echo -e "\t\t# 最后的配置 #"
echo -e "\t\t########################"
cat >> /etc/ssh/sshd_config <<EOF
PubkeyAuthentication yes
PasswordAuthentication yes
PermitRootLogin yes
EOF
sshd -t &>/dev/null
if [ $? -eq 0 ];then
read -p "完成所有配置是否重启sshd服务[Y/N]:" yn
if [ $yn == y ];then
systemctl restart sshd
sleep 2
if [ $? -eq 0 ];then
echo "[重启成功]"
else
echo "[重启失败]"
fi
elif [ $yn == n ];then
echo "[完成]没有重启sshd服务"
else
echo "[输入无效]"
fi
fi
sleep 2
clear
echo "SElinux开启状态会影响到root用户禁止远程登入状态"
read -p "是否关闭SElinux?[Y/N]:" yn2
if [ $yn2 == y ];then
setenforce 0
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
echo "[已关闭]"
elif [ $yn2 == n ];then
echo "[不进行操作]"
else
echo "[输入无效]"
fi
最后送上 openssh8.0的rpm包,上面构建openssh8.0没有成功的小伙伴可直接下载rpm包,导入后yun -y install ./* 即可。rpm包提取码:1111