由于系统扫描到OpenSSH版本太低,所以需要将其升级到高版本。网上搜罗数个文章,都多多少少有点疏漏。加上自己之前没升级过SSH,参考好几个文章查缺补漏才升级成功,着实废了不少劲儿。所以综合一下前辈们的文章,做一个详细的记录,让初学者能够按照步骤升级成功。

本文涉及到的、未涉及到的文件都上传至CSDN:

http://download.csdn.net/detail/w772759313/9359817

大家可自行下载。

=========================================华丽的分割线=========================================

事前工作:

先将所有安装文件包传至/usr/local/src文件夹下。

包含SSL和SSh安装包(源码)、telnet-server安装包(rpm)

事后工作:

删除无用安装包;

删除临时建立的账户;

关闭telnet服务。

一、安装配置TELNET服务

1、先安装配置telnet,在卸载ssh之后还可以远程连接服务器

rpm包安装,不赘述。

配置 vi /etc/xinetd.d/telnet

# default: on

# description: The telnet server serves telnet sessions; it uses \

#       unencrypted username/password pairs for authentication.

service telnet

{

flags           = REUSE

socket_type     = stream

wait            = no

user            = root

server          = /usr/sbin/in.telnetd

log_on_failure  += USERID

disable         = no --这里原来是yes,改成no

}

重启telnet服务

# service xinetd stop

Stopping xinetd: [  OK  ]

# service xinetd start

在此服务器上重新建立一个普通用户,客户端利用普通用户登录,再换成root用户。

2、在其他客户端上已telnet的方式登录服务器

# telnet 192.189.200.134 23

Trying 192.189.200.134...

Connected to 192.189.200.134 (192.189.200.134).

Escape character is '^]'.

Red Hat Enterprise Linux Server release 5.5 (Tikanga)

Kernel 2.6.18-194.el5 on an x86_64

login: 用户名

Password: 密码

telnet进入服务器后,可以切换到root用户,进行程序安装工作。

二、安装OpenSSL

1、卸载原有SSL

rpm -qa | grep openssl

---------------------

openssl-0.9.8e-12.el5_4.6

openssl097a-0.9.7a-9.el5_2.1

openssl097a-0.9.7a-9.el5_2.1

openssl-devel-0.9.8e-12.el5_4.6

openssl-0.9.8e-12.el5_4.6

openssl-devel-0.9.8e-12.el5_4.6

------------------------------------

#rpm -e `rpm -qa | grep openssl` --allmatches --nodeps

2、编译安装 OpenSSL

# cd /usr/local/src/

# tar -xzvf openssl-1.0.1j.tar.gz

# cd /usr/local/src/openssl-1.0.1j

# ./config --prefix=/usr/local/openssl -shared (shared命令必须加)

# make

# make test

# make install

make test (进行 SSL 加密协议的完整测试,如果出现错误就要一定先找出哪里的原因,否则一味继续,可能最终导致 SSH 不能使用,后果很严重的!)

3、配置库文件搜索路径

在/etc/ld.so.conf文件的最后面,添加如下内容:

/usr/local/openssl/lib

最终成为:

include ld.so.conf.d/*.conf

/usr/local/openssl/lib

4、执行ldconfig -v 刷新缓存文件

5、添加OPESSL的环境变量,在/etc/profile的最后一行,添加:

export OPENSSL=/usr/local/openssl/bin

export PATH=$OPENSSL:$PATH:$HOME/bin

6、使配置文件立即生效:

source /etc/profile

7、依次如下执行:

# cd /usr/local

# ldd /usr/local/openssl/bin/openssl

会出现类似如下信息:

linux-vdso.so.1 =>  (0x00007fff3bc73000)

libdl.so.2 => /lib64/libdl.so.2 (0x00007fc5385d7000)

libc.so.6 => /lib64/libc.so.6 (0x00007fc538279000)

/lib64/ld-linux-x86-64.so.2 (0x00007fc5387db000)

8、查看路径

# which openssl

/usr/local/openssl/bin/openssl

9、查看版本

...]# openssl version

OpenSSL 1.0.1j 15 Oct 2014

到此,OpenSSL安装完毕

三、安装OpenSSH

1、卸载原有SSH

rpm -qa | grep openssh

----------------------

openssh-server-4.3p2-41.el5

openssh-4.3p2-41.el5

openssh-askpass-4.3p2-41.el5

openssh-clients-4.3p2-41.el5

------------------------

rpm -e `rpm -qa | grep openssh` --allmatches --nodeps

2、升级 OpenSSH

# cd /usr/local/src/

# tar -xzvf openssh-6.7p1.tar.gz

# cd /usr/local/src/openssh-6.7p1

# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/openssl --with-md5-passwords

(注意,如果 configure 时提示 PAM 有错误,一般是因为系统中没有安装 pam-devel RPM 包,找到安装光盘,安装 pam-devel 就可以解决了,rpm -ivh pam-devel版本号。此问题亦可忽略。)

# make

# make install

3、生成ssh服务管理脚本:

进入ssh解压目录

#cd /usr/local/src/openssh-6.7p1/contrib/redhat

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

#chmod +x /etc/init.d/sshd (直接覆盖,权限会继承)

#chkconfig --list |grep sshd  检查ssh服务是否开机启动,如果没有,执行下面命令

#chkconfig --add sshd

4、最后,启动 SSH 服务使修改生效:

# /etc/init.d/sshd restart 或者 service sshd restart

5、重启后确认一下当前的 OpenSSH 和 OpenSSL 是否为新版:

# ssh -V

OpenSSH_6.7p1, OpenSSL 1.0.1j 15 Oct 2014

升级OpenSSH详细步骤的更多相关文章

  1. VS2012+Win7网站发布详细步骤

    VS2012+Win7网站发布详细步骤 本机环境: 本文分三个部分介绍Web项目发布的常规方法,大神级别可以略过,主要是为了方便一些初学者. 第一部分:VS2012把项目发布到文件系统. 第二部分:I ...

  2. 用grunt搭建自动化的web前端开发环境实战教程(详细步骤)

    用grunt搭建自动化的web前端开发环境实战教程(详细步骤) jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用!前端自动化, ...

  3. redhat6.4升级openssh至6.7

    1:简介 最近浙江电信对线上服务器进行漏洞扫描,暴露出原有的openssh有漏洞,建议升级openssh版本: 2:操作环境 Red Hat Enterprise Linux Server relea ...

  4. CentOS6-Linux内核编译 详细步骤

    CentOS6-Linux内核编译 详细步骤 背景 Win10用VMwareWorkstation搭的虚拟机 CentOS6.5,内核版本2.6.32-431.el6.x86_64 在该环境下升级至4 ...

  5. centos6升级openssh至7.9

    1.为了防止升级失败登陆不了,所以需要安装telnet mkdir /root/ssh_updateyum install -y telnet-serveryum install -y xinetd ...

  6. CentOS6、7升级Openssh至7.9

    出于安全考虑,定期使用Nessus对服务器进行扫描,最新Nessus提示服务器的SSH版本有漏洞,所以把SSH升级到最新版本 1.为了防止升级失败登陆不了,所以需要安装telnet mkdir /ro ...

  7. centos7安装Docker详细步骤(无坑版教程)

    一.安装前必读 在安装 Docker 之前,先说一下配置,我这里是Centos7 Linux 内核:官方建议 3.10 以上,3.8以上貌似也可. 注意:本文的命令使用的是 root 用户登录执行,不 ...

  8. unity导出工程导入到iOS原生工程中详细步骤

    一直想抽空整理一下unity原生工程导入iOS原生工程中的详细步骤.做iOS+vuforia+unity开发这么长时间了.从最初的小小白到现在的小白.中间趟过了好多的坑.也有一些的小小收货.做一个喜欢 ...

  9. java连接mysql数据库详细步骤解析

    java连接mysql数据库详细步骤解析      第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar      第二步:导入下载的J ...

随机推荐

  1. [转]CentOS Yum 命令详解

    总所周知,Redhat和Fedora的软件安装命令是rpm,但是用rpm安 装软件最大的麻烦就是需要手动寻找安装该软件所需要的一系列依赖关系,超级麻烦不说,要是软件不用了需要卸载的话由于卸载掉了某个依 ...

  2. Linux命令 &与&&的作用

    1.ls &表示后台服务 2.ls && ll 表示前者执行成功,执行后台命令

  3. 以查询方式实现1s定时

    以查询控制器的控制位状态来实现1s定时. #include <reg52.h> sbit LED = P0^; unsigned ; void main () { LED = ; // 点 ...

  4. Delphi接口

    program Demo1; { Create Date: 2014-06-29 Author: P.S.M 1.接口Demo1 } {$APPTYPE CONSOLE} uses SysUtils; ...

  5. 强大DevExpress,Winform LookUpEdit 实现多列查询 gridview弹出下拉选择 z

    关键代码请参考http://www.devexpress.com/Support/Center/p/K18333.aspx 最新DEMO 下载 The current GridLookUpEdit's ...

  6. 韦东山教程ARM的时钟设置出现的问题及其解决方法

    时钟设置是一个非常重要的环节,如果系统没有合适的时钟,根本无法工作.   S3C2440的时钟复杂,分为FCLK,HCLK,PCLK.    在程序测试中,曾出现这样一个错误.系统当前FCLK为400 ...

  7. 【转】.NET开发人员的瓶颈和职业发展

    现在社会比前几年浮躁了,越来越多的人抱怨薪水低,高薪工作不好找; 诚然这有CPI的压力,可是也有很多人没有认清自己的职业发展. 很多.NET程序员个各种纠结,想拿高薪又拿不到,想提高又不知道怎么能提高 ...

  8. MINA源码分析

    IoService通过构造函数的形式成为了IoSession一部分,IoSession是通过IoAcceptor以及connector创建出来,这二者其实就是IoService,所以对于IoSessi ...

  9. react + iscroll5

    react + iscroll5 经过几天的反复折腾,总算做出一个体验还不错的列表页了,主要支持了下拉刷新,上拉加载两个功能. 一开始直接采用了react-iscroll插件,它是基于iscroll插 ...

  10. 多个div独立控制其显示/隐藏

    今天要说一个神奇的html标签op,静态页下可以配合jquery分别控制每个层的显示/隐藏切换. 如果用动态中使用,用文章id做区分就可以了. <html> <head> &l ...