美文网首页程序员
Redhat5.4 、5.6升级SSH到openssh7.3p1

Redhat5.4 、5.6升级SSH到openssh7.3p1

作者: 十二楼中月 | 来源:发表于2017-06-06 20:11 被阅读780次

1.升级前准备

内网的linux系统在安全扫描,如果使用的是老版本的linux 系统肯定会提示升级openssh,现在基本要求升级到openssh7.3p1.
  所以在安装前需要下载openssh7.3p1
  在安装过程可能会提示openssl版本的问题下载最新的openssl-1.0.2h
  因为安装过程中可能会出现各种报错问题,遇到时候可以根据报错解决问题。例如gcc版本不对,zlib版本不对这两个我在安装过程都没有遇到。GCC如果连接外网或者内网有yum源 可以直接yum install gcc 安装。
  安装前可以查看到版本 ssh -V 这个版本是很低的,系统版本是redhat 5.4

ssh 版本 linux系统版本

  可以使用远程上传工具将下载好的两个文件上传到需要升级的linux服务器上面我使用的xshel里面的xftp上传的


上传文件

2.升级过程

解压文件就不用我说了吧:tar xzvf openssh-7.3p1.tar.gz
              tar xzvf openssl-1.0.2h.tar.gz

解压后文件
  我在第一次升级的时候没有先升级openssl出现如下报错:
  ./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl --with-md5-passwords --mandir=/usr/share/man
   编译时候可以不带-with-md5-passwords
编译 ssl版本报错

2.1 升级openssl

有人可能会问是否需要卸载openssl,个人建议如果你是业务机器还是先不要卸载,原因是如果你卸载可能你有业务也需要使用openssl比如web服务器就有可能会用到,如果你卸载那么就会出现故障,导致整个业务无法使用,我们可以把新版本的安装到你指定的一个位置,后面在使用ln连接过去。这样不会因为卸载导致故障。在之前升级到openssh到7.2时候就卸载openssl结果提示无法卸载我强制卸载最后就业务无法使用了。
ln相当于什么呢?快捷方式,如果在windows下安装个程序我们可以在新建快捷方式。那么在linux系统下相同也是可以的。当然这是我的个人理解
  cd openssl-1.0.2h    ./config --prefix=/usr/local/ssl shared zlib-dynamic enable-camellia

编译ssl

出现如下提示说明编译成功,需要在运行make depend ,在运行mke&&make install

编译完成
make depend 安装ssl
  上面就表示已经安装完成,但是现在还需要做一些设置就创建快捷方式和连接库文件
  mv /usr/bin/openssl /usr/bin/openssl.bak   mv /usr/include/openssl /usr/include/openssl.bak   ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl   ln -s /usr/local/ssl/include/openssl /usr/include/openssl   echo "/usr/local/ssl/lib" >> /etc/ld.so.conf   ldconfig -v #检测库文件

Openssl version -a检查版本

检查openssl版本

2.2 升级openssh

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

有报错了
  发现还是有这样的报错,原因是上面的的指定--with-ssl-dir=/usr/local/openssl 是错误的应该是和上面的安装openssl设置的相同的,/usr/local/ssl .
  ./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/ssl --with-md5-passwords --mandir=/usr/share/man
  这样就成功编译了。 ssh编译成功
  在安装之前需要先把之前的配置文件备份下
  mv /etc/ssh/ssh_config /etc/ssh/ssh_config.bak    mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak    make && make install 安装前的备份 安装完成

  现在就可以安装了,前面一直没有说的一个问题就是这个是远程安装那么安装以后如果需要修改配置文件,不能再使用ssh修改,可以使用telnet或者其他的替代程序操作

为什么还是旧版本呢

  发现了什么重启以后没有成功啊。显示的还是之前的,我没有原来的卸载 rpm -e ‘rpm -qa|grep openssh’
  修改配置文件和卸载需要使用其他方式登录上去 我使用的是虚拟化的我直接使用vSphere client远程连接上去操作。

3.修改配置文件

卸载之后将你新安装的的文件里面对应ssh和sshd分别复制到/usr/bin/ssh和/usr/sbin/sshd.
然后在根据你的操作系统把解压文件下面的contrib里面找到你的系统是redhat还是其他 里面的sshd.init文件复制到/etc/init.d/sshd 这样就可以重新启动了。

特别说明:我一开始没有卸载原来的版本 直接这样操作发现重启服务还是原来的版本,这个和openssl有点不一样。那个可以和旧版本同时存在但是这个不行。就好像我们在windows下安装某些软件不同的版本必须卸载到另外的版本。产品能够去之后发现远程使用root无法登录还是需要修改配置文件。

卸载以后安装完成需要操作

  配置文件主要是:/etc/ssh/sshd_config

配置文件1

  上面第一个是说他的端口为22 第二个是说是ssh2 第三个就是开启远程root登录了。

配置文件2

  第一个位置是防止有事会在远程登录有个错误提示需要把这个开启。
  第二个位置是将sftp的文件位置设定好否则sftp无法使用
这些都完成之后重启服务service sshd restart(注意是重启 不是start 否是无效的)

4.远程测试

如果没有修改配置文件远程报错:

root无法登录

  修改重启之后:


正常了

特别

今天遇到新的问题就是同事reboot我升级之后的linux系统发现不能远程。我到机器上面看sshd没有启动。我以为是我没有设置chkconfig sshd on导致的但是我查看在几个模式下都是启动的啊,后来我想可能是这种升级方法有弊端,建议保险起见,虽然我也看到了S55sshd,但是在加两个软连接。因为是生产机器我,没有在进一步测试是不是同事操作的其他问题。

添加软连接

今天在准备测试没有随系统启动问题时候,新安装的centos 7然后遇到了4个报错:
1.gcc没有安装
2.zlib.h missing原本我以为是zlib没有安装但是查询已经安装最后发现是zlib-devel没有安装导致的问题
3.openssl headers missing查询openssl已经安装版本也没问题是openssl-devel
4.PAM headers not found同样因为open-devel问题

再将centos7 升级到openssh7.3sp1使用xshell显示找不到host key的加密算法
解决办法是rm /etc/ssh/ssh_host_*
在重启电脑就可以了,相当于吧之前的秘钥全部重置

相关文章

  • Redhat5.4 、5.6升级SSH到openssh7.3p1

    1.升级前准备 内网的linux系统在安全扫描,如果使用的是老版本的linux 系统肯定会提示升级openssh,...

  • 升级Mysql 到 5.6

    以下是 Ubuntu 14.04 下 mysql 5.5 升级到 5.6 的方法: 1.备份数据: mysqldu...

  • Ubuntu 14.04升级MySQL

    Ubuntu 14.04.5 LTS 默认安装的MySQL版本为5.5.57,以下为升级到MySQL 5.6操作步...

  • 升级php版本步骤

    升级php的版本,从5.2升级到5.6,并且安装yaf框架,操作配置如下: 0. ###备份模块列表: cd /h...

  • PHP7.2升级到PHP7.4

    WordPress 5.6建议PHP版本要升级到7.4,为此需要将mac上原本PHP7.2做一次升级。 用Home...

  • PHP 版本升级 5.5.38 到 5.6

    1.phpbrew 直接通过php版本工具phpbrew install 5.6.30 +default 2.方法...

  • setTrustedProxies() must be of t

    Laravel5.5 升级到Laravel 5.6或5.7的出现代理错误 打开 App\Http\Middlewa...

  • Windows 下升级mysql 5.6到5.7

    Mysql的升级方式分为两种:原地升级和逻辑升级。这两种升级方式,本质没有什么区别的。 只是在对数据文件的处理上有...

  • mysql 5.6 升级到 mysq 5.7

    在若依框架中需要把 数据库升级,否在linux中,定时任务的表导不进去。下载地址:http://mirrors.s...

  • Mac 升级PHP环境到7.1.x

    我的电脑里面预装的是5.6.x的版本,需要升级到最新的版本PHP7.x。其实升级很简单,网上都搞得好复杂。官网资料...

网友评论

    本文标题:Redhat5.4 、5.6升级SSH到openssh7.3p1

    本文链接:https://www.haomeiwen.com/subject/cesnfxtx.html