欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

centos7升级openssl、openssh常见问题及解决方法(亲测过)

程序员文章站 2022-07-11 17:14:52
升级至openssl 1.1.1版本 升级至openssh 8.0版本 openssl version -a 当前查看版本 一.安装telnet (以防升级失败,连不上服务器,建议弄) #查看是否安装 rpm -qa | grep telnet rpm -qa | grep xinetd #若无安装 ......

 

 

升级至openssl 1.1.1版本

升级至openssh 8.0版本

 

openssl version -a   当前查看版本

 

一.安装telnet (以防升级失败,连不上服务器,建议弄)

#查看是否安装

rpm -qa | grep telnet     

rpm -qa | grep xinetd    

 

#若无安装,yum安装

yum -y install telnet* 

yum -y install xinetd     

 

#将服务开机自启(此处根据自身情况考虑)

systemctl enable xinetd.service

systemctl enable telnet.socket

 

#开启服务

systemctl start telnet.socket  

systemctl start xinetd

 

 vi /etc/securetty

在最后添加两行

pts/0

pts/1

 

systemctl restart xinetd

netstat -plnt |grep 23确认下

 

 

二、升级openssl

 

1、查看源版本

[root@zj ~]# openssl version -a

openssl 0.9.8e-fips-rhel5 01 jul 2008

 

3、解压安装

tar zxvf openssl-1.1.1c.tar.gzcd openssl-1.0.1g

cd openssl-1.1.1c

./config --prefix=/usr/local/openssl  #检查环境

./config –t

make     #编译

make install      #编译安装

 

cd /usr/local

ldd /usr/local/openssl/bin/openssl     #检查函数库

echo "/usr/local/openssl/lib" >> /etc/ld.so.conf    #添加所缺函数库

ldconfig -v        #更新函数库

openssl/bin/openssl version      #查看新安装的版本

 

which openssl           #查看旧版本openssl命令在哪里

mv /bin/openssl /usr/bin/openssl.old      #将旧版本openssl移除

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl           #新版本制作软链接

openssl version         最后查看版本,更新完毕

 

 

在确保openssl版本为1.0.1后,可以升级openssh了,升级方法如下。

解压,进入编译

 

备份旧版本

mv /etc/ssh /etc/ssh.old

 

cd openssh-8.0p1/

./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl --with-md5-passwords --mandir=/usr/share/man --with-zlib=/usr/local/zlib --without-hardening

 

在安装的过程中如遇到以下错误,请安装yum -y install openssl-devel

 centos7升级openssl、openssh常见问题及解决方法(亲测过)

 

 

如遇以下错误,请安装yum -y install pam-devel

configure: error: pam headers not found 

 

我升级的时候只遇到这两个错,如遇到别的错,请自行解决。

然后make && make install 

 

修改启动脚本

cp ./contrib/redhat/sshd.init /etc/init.d/sshd  拷贝启动脚本

 

修改启动脚本

vim /etc/init.d/sshd

按如下图修改

sshd=/usr/local/openssh/sbin/sshd

 centos7升级openssl、openssh常见问题及解决方法(亲测过)

 

 

/usr/local/openssh/bin/ssh-keygen –a

 

/sbin/restorecon /etc/ssh/ssh_host_key.pub

/sbin/restorecon /etc/ssh/ssh_host_rsa_key.pub

/sbin/restorecon /etc/ssh/ssh_host_dsa_key.pub

/sbin/restorecon /etc/ssh/ssh_host_ecdsa_key.pub

 centos7升级openssl、openssh常见问题及解决方法(亲测过)

 

 

修改sshd配置文件/etc/ssh/sshd_config 

 

echo "permitrootlogin yes" >> /etc/ssh/sshd_config    #直接用root登录终端(此处根据自身情况考虑)

echo 'x11forwarding yes' >> /etc/ssh/sshd_config

echo "passwordauthentication yes" >> /etc/ssh/sshd_config

 centos7升级openssl、openssh常见问题及解决方法(亲测过)

 

 

卸载原有ssh(先安装后卸载,也是怕升级失败,如果有把我,可先卸载)

for  i   in  $(rpm  -qa  |grep  openssh);do  rpm  -e  $i  --nodeps ;done

 

提示警告:

 centos7升级openssl、openssh常见问题及解决方法(亲测过)

centos7升级openssl、openssh常见问题及解决方法(亲测过)

 

 

将警告中修改的名字改回来

mv /etc/ssh/sshd_config.rpmsave /etc/ssh/sshd_config

mv /etc/ssh/ssh_config.rpmsave /etc/ssh/ssh_config

mv /etc/ssh/moduli.rpmsave /etc/ssh/moduli

 

cp -arp /usr/local/openssh/bin/* /usr/bin/  替换相关命令

service sshd restart   重启sshd服务

验证升级、让其他人测试连接后再退出

ssh -v 和telnet 

 centos7升级openssl、openssh常见问题及解决方法(亲测过)

 

开机自启

chkconfig --add sshd

chkconfig --level 2345 sshd on

chkconfig --list 

 

升级完成后,为了安全起见,建议关闭telnet

 

#关闭服务(此处根据自身情况考虑)

systemctl stop telnet.socket  

systemctl stop xinetd

 

#关闭服务开机自启(此处根据自身情况考虑)

systemctl disable xinetd.service

systemctl disable telnet.socket