編譯升級至openssh7.6


 

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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM