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

编译升级至openssh7.6

程序员文章站 2022-04-20 23:03:59
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.概述

目的:下载源码包(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

 编译升级至openssh7.6

2.挂载光盘至/mnt

mount /dev/cdrom /mnt

 编译升级至openssh7.6

 

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

cd /etc/yum.repo.d/

ls

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

vim CentOS-Base.repo

 编译升级至openssh7.6

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

[local]

name=This is local repo

baseurl=file:///mnt

enabled=1

gpgcheck=0

 编译升级至openssh7.6

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

yum clean

yum makecache

yum repolist

 编译升级至openssh7.6

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

 编译升级至openssh7.6

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

yum makecache

 编译升级至openssh7.6

3.准备阶段

3.1开启telnet服务(可选)

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

yum install telnet-server

 编译升级至openssh7.6

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

service xinetd start

 编译升级至openssh7.6

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

service xinetd status

netstat -pantu | grep xinetd

 编译升级至openssh7.6

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

vim /etc/pam.d/login

/pam_securetty.so

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

:wq

 编译升级至openssh7.6

编译升级至openssh7.6

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

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

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

 编译升级至openssh7.6

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

service xinetd restart

 编译升级至openssh7.6

7.测试telnet登录。

 编译升级至openssh7.6

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

1.查看ssh版本

ssh -V

 编译升级至openssh7.6

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

 编译升级至openssh7.6

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

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

 编译升级至openssh7.6

4.编译安装

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

 编译升级至openssh7.6

2.解压openssh的tarball。

tar xvf openssh-7.6p1.tar.gz

 编译升级至openssh7.6

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并没有实际使用。

 编译升级至openssh7.6

编译升级至openssh7.6

4.编译openssh。

make -j4

 编译升级至openssh7.6

5.链接安装openssh

make install

 编译升级至openssh7.6

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

 编译升级至openssh7.6

6.重启ssh服务。

service sshd restart

 编译升级至openssh7.6

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

 编译升级至openssh7.6

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

Useradd xxxxx

psswd xxxxx

 编译升级至openssh7.6

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

 编译升级至openssh7.6

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

Vim /etc/ssh/sshd_config

/PermitRootlogin

PermitRootlogin yes(取消此行注释)

 编译升级至openssh7.6

编译升级至openssh7.6

11.重启ssh服务。

service sshd restart

service sshd status

netstat -pantu |grep :22

 编译升级至openssh7.6

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

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

ssh -V

chkconfig –list |grep sshd

 编译升级至openssh7.6

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

Vim /etc/ssh/sshd_config

#GSSAPIAuthentication yes(注释以下两行)

#GSSAPICleanupCredentials yes

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

 编译升级至openssh7.6

编译升级至openssh7.6

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

 编译升级至openssh7.6

5.收尾阶段

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

service xinetd stop

service xinetd status

编译升级至openssh7.6

 

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

chkconfig --list |grep xinetd

chkconfig --level 345 xinetd off

chkconfig --list |grep xinetd

 编译升级至openssh7.6