suse12系统下的OpenSSH_6.2p2升级到OpenSSH_7.3p1

          OpenSSH_6.2p2升级到OpenSSH_7.3p1

 

 

OpenSSH_6.2p2升级到OpenSSH_7.3p1 1

前言 2

一:检查依赖软件 3

#安装必要的gcc, gcc-c++编译工具以及libopenssl-devel,pam-devel,zlib-deve 3

二:安装OpenSSL 4

2.1.检查系统自带的openssl 4

2.2.检查openssl版本 4

2.3.检查openssl安装文件以及路径 4

2.4备份上述文件,/usr/bin/X11/openssl为/usr/bin/openssl的软链接 5

2.5安装zlib-1.2.8 5

三:升级openssl 6

3.1安装openssl-fips-2.0.13 6

3.2 检查安装好后的目录文件 6

3.3安装openssl-1.0.2h 7

3.4查看安装好的/usr/local/openssl目录文件 7

3.5 查看/etc/ssl目录 7

3.6配置升级后的openssl的相关目录(链接openssl程序) 8

3.7查看升级的openssl版本 8

四:卸载系统原有的OpenSSH 9

4.1停止sshd服务 9

4.2卸载openssh 9

五:升级OpenSSH 9

5.1安装openssh7.3p1 9

5.2 查看升级后的版本 10

5.3 拷贝sshd启动脚本,contrib/目录下对应系统的启动脚本 10

5.4启动并设置开机启动 10

5.5修改sshd 文件 10

六:升级过程可能会出现的经典错误 11

6.1编译openssh时,出现找不到pam-devel 11

6.2编译过程中出现libpam missing 11

6.3编译过程出现host-key Error 255 12

6.4编译过程中出现错误configure: error: *** Can't find recent OpenSSL libcrypto (see config.log for details) *** 12

6.5编译openssh依赖的是openssl是老版本 12

6.7升级后ssh无法正常登录 13

 

 

              前言

OpenSSH概念:

OpenSSH是实现远程控制、远程加密传输数据的安全的网络连接工具,也就是为我们提供ssh服务的程序。SSH由服务端和客户端组成,服务端是一个守护进程(sshd),在后台运行并响应客户端的连接请求;客户端包含ssh(openssh-clients)、scp、rsync、slogin、sftp等应用程序。

 SSH服务本身提供了一种安全加密的数据传输方式。在一些比较旧的Linux系统版本中,多数是openssh 5版本。而目前OpenSSH已更新到OpenSSH 7.X版本,修复许多存在的安全漏洞,也是较为安全的版本。OpenSSH官网:http://www.openssh.com

 

系统要求:SUSE Linux Enterprise Server 11 SP2  (x86_64)

安装软件包前提准备:

 

 

一:检查依赖软件

#安装必要的gcc, gcc-c++编译工具以及libopenssl-devel,pam-devel,zlib-deve

#zypper in -y gcc gcc-c++

 

#rpm -ivh libopenssl-devel-1.0.1i-21.1.x86_64.rpm --nodeps --force 

 

#rpm -ivh pam-devel-1.1.8-18.el7.x86_64.rpm --nodeps --force

 

#rpm -ivh zlib-devel-1.2.8-10.1.x86_64.rpm

 

Dmj:--nodeps --force

 

 

 

 

 

 

 

 

二:安装OpenSSL

2.1.检查系统自带的openssl

#rpm -q openssl

#由于openssl依赖的软件太多,所以在升级openssl时,不用卸载旧的版本。如果强制卸载可能导致系统不能正常运行

2.2.检查openssl版本

#openssl version

2.3.检查openssl安装文件以及路径

#which openssl

# 在升级过程中将旧版的相关文件进行备份,在升级新版本后重新链接替换为新版本对应的文件目录

#whereis openssl

 

#ls /etc/ssl

 

2.4备份上述文件,/usr/bin/X11/openssl为/usr/bin/openssl的软链接

# mkdir /home/ssl_bak

# mv /usr/bin/openssl /home/ssl_bak/

# mv /etc/ssl /home/ssl_bak/etc_ssl

# mv /usr/include/openssl /home/ssl_bak/include_openssl

 

 

2.5安装zlib-1.2.8

#解压

#tar -zxvf zlib-1.2.8.tar.gz

#cd zlib-1.2.8

#./configure

#make && make install

 

 

 

 

 

 

 

三:升级openssl

#涉及openssl-1.0.2h.tar.gz,openssl-fips-2.0.13.tar.gz这两个包,一并安装上去

3.1安装openssl-fips-2.0.13

#解压openssl-fips-2.0.13.tar.gz

#tar -zxf openssl-fips-2.0.13.tar.gz 

#cd openssl-fips-2.0.13/

# --prefix指定openssl的安装目录,记得加上shared参数,生成动态链接库

#./config --prefix=/usr/local/openssl --openssldir=/etc/ssl  shared

#make

#make install

 

3.2 检查安装好后的目录文件

#ls /usr/local/openssl

#ls /usr/local/openssl/{bin,include,lib}

3.3安装openssl-1.0.2h

#解压openssl-1.0.2h.tar.gz

# tar -zxf openssl-1.0.2h.tar.gz

# cd openssl-1.0.2h/

#./config --prefix=/usr/local/openssl --openssldir=/etc/ssl  shared

# make

# make install

 

3.4查看安装好的/usr/local/openssl目录文件

#ls /usr/local/openssl/{bin,include,lib}

3.5 查看/etc/ssl目录

#ls /etc/ssl/

 

 

 

 

3.6配置升级后的openssl的相关目录(链接openssl程序)

# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

# ln -s /usr/local/openssl/include/openssl /usr/include/openssl

#  vim /etc/ld.so.conf

suse12系统下的OpenSSH_6.2p2升级到OpenSSH_7.3p1_第1张图片

注意:一定放置到lib64上面否则编译openssh时会找不到openssl-1.0.2h只会找到原来版本的openssl进行编译

# ldconfig

3.7查看升级的openssl版本

#openssl version

 

四:卸载系统原有的OpenSSH

4.1停止sshd服务

# service sshd stop

4.2卸载openssh

# zypper rm openssh

# rpm -qa | grep openssh

五:升级OpenSSH

5.1安装openssh7.3p1

#tar -zxvf openssh-7.3p1.tar.gz

# cd openssh-7.3p1/

#./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl-1.0.2h --with-md5-passwords --mandir=/usr/share/man --with-zlib=/usr/local/zlib-1.2.8 --without-openssl-header-check

#make

#make install

 

 

5.2 查看升级后的版本

# ssh -V

5.3 拷贝sshd启动脚本,contrib/目录下对应系统的启动脚本

cd contrib/

#cp suse/rc.sshd /etc/init.d/sshd

#chmod 755 /etc/init.d/sshd 

5.4启动并设置开机启动

#chkconfig --add sshd

#chkconfig sshd on

5.5修改sshd 文件

#vim /etc/ssh/sshd_config

修改两个,如果没有PermitRootLogin 就手动添加进去

# service sshd start

 

六:升级过程可能会出现的经典错误

6.1编译openssh时,出现找不到pam-devel

如果按照我目前提供的文档都提前都准备好了pam-devel这个rpm包,所以编译时不会出现这种情况

 

 

6.2编译过程中出现libpam missing

suse12系统下的OpenSSH_6.2p2升级到OpenSSH_7.3p1_第2张图片

由于我们提前安装了pam-devel,后续进行编译写着:./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam--with*(此处省略)

这样的话就会报libpam 在安装过程中去掉--with-pam就可以了

 

 

 

 

 

6.3编译过程出现host-key Error 255

 

这是因为我们在编译的时候没有加上---with-md5-passwords,所以不会生成host-key

 

 

6.4编译过程中出现错误configure: error: *** Can't find recent OpenSSL libcrypto (see config.log for details) ***

这是OpenSSL没有安装配置好所引起的错误,重新安装OpenSSL即可

 

6.5编译openssh依赖的是openssl是老版本

在/etc/ld.so.cnf配置OpenSSL时把/usr/loacl/openssl/lib

把/usr/local/openssl/lib放置在lib64位后面,后续编译openssh时不会先检测到先升级后的openssl

 

 

 

6.7升级后ssh无法正常登录

需打开PermitRootLogin,PasswordAuthentication即可

 

如果还有什么疑问请发送邮箱:[email protected]

你可能感兴趣的:(suse12系统下的OpenSSH_6.2p2升级到OpenSSH_7.3p1)