1.概述

目的:下载源码包(https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.6p1.tar.gz),编译升级为openssh为7.6版本。

适用:centOS-5.x/6.x。

Openssl最好为1.0.1版本;若为1.0.2则有可能在编译过程中报错。

编译环境要求:

1.openssl、openssl-devel、pam-devel、gcc、gcc-c++、zlib、zlib-devel、zlib-static

2.或包组:Development tools、Server Platform Development

依赖解决办法:

1.设置云环境内yum源。

2.插入对应版本的centOS光盘,设置本地yum源。

2.设置yum源

2.1本地yum源

1.查看/dev内cd设备名称。

ls -l /dev | grep cd

2.挂载光盘至/mnt

mount /dev/cdrom /mnt

3.备份源yumrepo文件,并新建yumrepo配置文件。

cd /etc/yum.repo.d/

ls

mv CentOS-Base.repo CentOS-Base.repo.bak

vim CentOS-Base.repo

4.设置本地光盘为yum更新源。

[local]

name=This is local repo

baseurl=file:///mnt

enabled=1

gpgcheck=0

5.清空yum缓存,生成新的缓存文件,并查看yum源列表是否有上面设置的本地源。

yum clean

yum makecache

yum repolist

2.2http-yum源

1.编辑配置文件CentOS-Base.repo,新增http-yum源。

[base]

name=network yum repo

baseurl=https://mirrors.aliyun.com/centos/6/os/x86_64/

enabled=1

gpgcheck=0

2.重新生成缓存文件,查看是否有刚才设置的http-yum源。

yum makecache

3.准备阶段

3.1开启telnet服务(可选)

1.安装telnet-server服务,防止由于升级失败造成无法远程管理服务器。

yum install telnet-server

2.开启telnet所需的守护进程xinetd。

service xinetd start

3.检查telnet服务是否开启成功。

service xinetd status

netstat -pantu | grep xinetd

4.默认telnet只能普通用户登录,root管理员无法登录,修改配置,允许root账号登录。(注:4/5步二选一即可)

vim /etc/pam.d/login

/pam_securetty.so

#auth required pam_securetty.so(注释此行)

:wq

5.或者将/etc/securetty文件重命名,使其失效。

(注:4/5步二选一即可)

mv -v /etc/securetty /etc/securetty.bak

6.重启telnet服务,使修改的配置生效。

service xinetd restart

7.测试telnet登录。

3.2 解决安装可能存在的依赖关系

1.查看ssh版本

ssh -V

2.检查依赖包的安装状态

rpm -qa openssl

rpm -qa openssl-devel

rpm -qa pam-devel

rpm -qa gcc

rpm -qa gcc-c++

rpm -qa zlib

rpm -qa zlib-devel

rpm -qa zlib-static

3.安装编译缺失的依赖包(注:此步根据服务器实际情况而定)

yum -y install openssl-devel pam-devel gcc gcc-c++ zlib-devel zlib-static

4.编译安装

1.上传安装包至服务器。

2.解压openssh的tarball。

tar xvf openssh-7.6p1.tar.gz

3.生成makefile。

cd openssh-7.6p1

./configure --sbindir=/usr/sbin/  --bindir=/usr/bin/ --sysconfdir=/etc/ssh --with-ssl-engine --with-pam --with-md5-passwords

编译完成无error信息即顺利完成编译,此处pam并没有实际使用。

4.编译openssh。

make -j4

5.链接安装openssh

make install

注:连接的过程中出现此信息,代表openssh7.6不支持GSSAPT这两条配置。

6.重启ssh服务。

service sshd restart

7.安装完毕,测试root账号登录。服务器拒绝。

8.创建普通用户,稍后测试普通用户登录情况。

Useradd xxxxx

psswd xxxxx

9.测试普通用户登录情况。结果为可以正常登陆。

10.修改配置文件/etc/ssh/sshd_config.解决root无法登录的情况。

Vim /etc/ssh/sshd_config

/PermitRootlogin

PermitRootlogin yes(取消此行注释)

11.重启ssh服务。

service sshd restart

service sshd status

netstat -pantu |grep :22

12.测试root用户登录。测试结果为可以正常登陆。并且openssh已经升级为7.6p1版本

并且init345开机等级自动开启此服务。

ssh -V

chkconfig –list |grep sshd

13.另外由于新版openssh不支持GSSAPI参数,所有需要注释此行,已免有未知影响。

Vim /etc/ssh/sshd_config

#GSSAPIAuthentication yes(注释以下两行)

#GSSAPICleanupCredentials yes

修改前开启服务会有报错信息。

修改后重启服务报错信息消失。

5.收尾阶段

1.关闭telnet-server服务进程。

service xinetd stop

service xinetd status

2.关闭telnet-server服务345级别开机自启动服务。

chkconfig --list |grep xinetd

chkconfig --level 345 xinetd off

chkconfig --list |grep xinetd

编译升级至openssh7.6的更多相关文章

  1. Centos6升级至openssh-7.5p1

    最近公司有几台服务器需要搬至甲方(政府单位),所以在安装服务时用的是16年的openssh7.3pl, 今天通知我们有漏洞,需要再一次升级,看到官方文档上版本已升级至7.5,所以干脆直接搞7.5 具体 ...

  2. Centos 6.5升级openssh到7.5p1版本

    centos6自带的ssh版本较低,存在高危漏洞,目前部分服务器需要升级到最新版本(目前是7.5p1). 注:升级ssh存在一定的危险性,一旦不成功可能无法通过远程连接到系统,因此在升级之前最好有远程 ...

  3. RobotFramework+Appium 为了兼容iOS12,升级至Xcode10后,WebDriverAgent编译不通过:Undefind symbols for architecture x86_64

    报错信息如下: Undefined symbols for architecture arm64: "_OBJC_CLASS_$_XCElementSnapshot", refer ...

  4. SSH/SSL 源码编译安装简易操作说明

    环境:CentOS 6.7 安全加固需求,由于某盟扫描系统主机有SSL系列漏洞,客户要求必须修复: 解决方案:将SSH/SSL升级到最新版本,删除SSL旧版本(实测不删除旧版本某盟扫描无法通过). 当 ...

  5. Linux 内核编译

    注:该文章部分内容摘录自以下链接. http://www.cnblogs.com/zhunian/archive/2012/04/04/2431883.html 创建内核的第一步是创建一个 .conf ...

  6. 将EnyimMemcached从.NET Core RC1升级至RC2

    .NET Core RC1时project.json中的配置如下: { "version": "3.2.4", "summary": &qu ...

  7. 我的复杂的OpenCV编译之路(OpenCV3.1.0 + VS2010 + Win7)

    教程:www.cnblogs.com/jliangqiu2016/p/5597501.html 这里主要记载我编译遇到的错误及解决方法. OpenCV3.1软件下载:https://sourcefor ...

  8. ASP.NET 4.0升级至ASP.NET 4.5需要注意的地方 【转】

    原以为只要在Visual Studio 2012中将每个项目的Target framework设置为.NET Framewor 4.5进行编译,然后在web.config中设置compilation的 ...

  9. egret命令行编译项目时 版本不对应的问题

    egret 命令行编译项目时 如使用 egret build -e 会出现版本不对应的问题 分析原因 A,B项目 A项目使用1.8的egret引擎, B项目使用2.5引擎 但本地引擎升级至2.5.5, ...

随机推荐

  1. Ubuntu 18.04 的网络配置

    netplan简介 目前,ubuntu18.04上使用了netplan 作为网络配置工具:在终端上配置网络参数跟之前的版本有比较大的差别 Netplan工作流程如下图所示:通过读取  /etc/net ...

  2. css positioning计算和jquery对应函数

  3. easyui的解析器Parser

    平时使用easyui做框架开发时,都知道easyui的模块组件能通过属性方法或js方法来渲染,本质上是通过parser解析器来处理实现的,因为多数情况下都是自动触发完成整个页面的解析,所以没有感觉到它 ...

  4. Linux ->> UBuntu ->> Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)

    今天在Ubuntu 14.04下用apt-get目录安装SSH的时候发生了这个错误提示.经过一番查找了解可能发生的原因. 首先apt作为一个软件更新机制,每次运行的时候会对apt数据库加锁.当发生上面 ...

  5. div浮层,滚动条移动,保持位置不变的4种方法

    div浮层,滚动条移动,保持位置不变的4种方法 div在顶部不变.滚动条滚动,div还是在顶部! 直接上传源码 了: 方法一: <!DOCTYPE html PUBLIC "-//W3 ...

  6. 【深入理解JAVA虚拟机】第一部分.走进Java

    Java技术体系 如果仅从传统意义上来看,Sun官方所定义的Java技术体系包括以下几个组成部分:Java程序设计语言各种硬件平台上的Java虚拟机Class文件格式Java API类库来自商业机构和 ...

  7. ABAP类的文档生成工具

    本文介绍的工具原理和JavaDoc类似,位于software component BBPCRM 1. 在ABAP类里新建一个名为CLASS_DOCU的私有方法. 然后把所有的注释写在这个方法源代码的前 ...

  8. .net 基础(一)

    方法 只需要考虑2个 东西 1. 方法的参数  2.方法的返回值 当参数的个数不确定的时候,可以采用可变参数params. params 数组的 个数,不确定.当传入的 参数为空的时候,可变参数的数组 ...

  9. caffe 学习(2)——基本原理

    参考 http://caffe.berkeleyvision.org/tutorial/ 表达:models和optimizations使用纯文本文档形式定义,不是用代码定义: 速度:适用于工业和科研 ...

  10. 记录一下xcode9 添加文件夹的顺序

    右击->Add Files to YourProject->弹出文件对话框,点击Options->选择:Copy Items if needed和Create Groups 要选择O ...