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
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