Centos 6.5、7升級安裝openssh8.2p1

因centos7自帶的ssh版本較低,存在高危漏洞,故升級到最新版本(目前是7.4p1)

注: 升級ssh存在一定的危險性,一旦不成功可能無法通過遠程連接到系統(tǒng),因此在升級之前最好先安裝vnc或者telnet等遠程服務

1. 準備工作

查看下當前SSH和SSL版本:

[root@SCJG-NTP ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
[root@SCJG-NTP ~]# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017
[root@SCJG-NTP ~]# rpm -qa | grep openssh
openssh-clients-7.4p1-11.el7.x86_64
openssh-server-7.4p1-11.el7.x86_64
openssh-7.4p1-11.el7.x86_64

若提示:

openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

請謹慎操作:

[root@SCJG-NTP ~]# ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
[root@SCJG-NTP ~]# ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

再次確定ssl版本:

[root@SCJG-NTP ~]# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017

下載最新版openssh:

[root@SCJG-NTP bak]# wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.2p1.tar.gz
或者是
[root@SCJG-NTP bak]# wget https://mirrors.sonic.net/pub/OpenBSD/OpenSSH/portable/openssh-8.2p1.tar.gz

備份ssh:

[root@SCJG-NTP bak]# cp -r /etc/ssh/ /etc/ssh_bak

2、編譯安裝openssh

解壓安裝包:

[root@SCJG-NTP bak]# tar -zxf openssh-8.2p1.tar.gz

編譯:

如果提示需要gcc編譯器,可手動安裝,我在這里是用yum安裝:
[root@SCJG-NTP bak]# yum -y install gcc
[root@SCJG-NTP bak]# cd openssh-8.2p1/
[root@SCJG-NTP openssh-8.2p1]# ./configure --prefix=/usr --sysconfdir=/etc/ssh

報錯一:

如果報錯:
configure: error: *** zlib.h missing - please install first or check config.log ***
需要安裝zlib-devel
[root@SCJG-NTP openssh-8.2p1]# yum install -y zlib-devel

報錯二:

如果報錯:
configure: error: *** OpenSSL headers missing - please install first or check config.log ***
configure: error: *** working libcrypto not found, check config.log
需要安裝openssl-devel包
[root@SCJG-NTP openssh-8.2p1]# yum -y install openssl-devel

報錯三:

如果報錯:
checking whether OpenSSL's headers match the library... no
configure: error: Your OpenSSL headers do not match your
        library. Check config.log for details.
        If you are sure your installation is consistent, you can disable the check
        by running "./configure --without-openssl-header-check".
        Also see contrib/findssl.sh for help identifying header/library mismatches.

添加`--without-openssl-header-check`參數(shù)繼續(xù)編譯
 ./configure --prefix=/usr --sysconfdir=/etc/ssh  --without-openssl-header-check

解決完報錯后重新執(zhí)行 ./configure --prefix=/usr --sysconfdir=/etc/ssh

完成后執(zhí)行make:

[root@SCJG-NTP openssh-8.2p1]# make
make完成后先不要make install,先卸載舊版的openssh
[root@SCJG-NTP openssh-8.2p1]# rpm -e --nodeps `rpm -qa | grep openssh`

完成后執(zhí)行make install:

[root@SCJG-NTP openssh-8.2p1]# make install

提示以下等多個WARNING

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for '/etc/ssh/ssh_host_rsa_key' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for '/etc/ssh/ssh_host_ecdsa_key' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for '/etc/ssh/ssh_host_ed25519_key' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
sshd: no hostkeys available -- exiting.
make: [check-config] 錯誤 1 (忽略)

將對應目錄修改600權限即可

[root@SCJG-NTP openssh-8.2p1]# chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key

查看下安裝結(jié)果:

[root@SCJG-NTP openssh-8.2p1]# ssh -V
OpenSSH_8.2p1, OpenSSL 1.0.2k-fips  26 Jan 2017

至此編譯安裝完成。

3、配置sshd服務

復制啟動文件到/etc/init.d/下并命名為sshd:

[root@SCJG-NTP openssh-8.2p1]# cp contrib/redhat/sshd.init /etc/init.d/sshd

加入開機啟動:

[root@SCJG-NTP openssh-8.2p1]# chkconfig --add sshd

4、配置允許root使用ssh

openssh8.2默認root用戶是不能用ssh遠程登錄的,需要修改配置文件:

[root@SCJG-NTP openssh-8.2p1]# vim /etc/ssh/sshd_config
找到#PermitRootLogin prohibit-password項,去掉注釋并把prohibit-password改為yes
PermitRootLogin yes

有可能還需要修改PasswordAuthentication
PasswordAuthentication yes

重啟ssh服務:

[root@SCJG-NTP openssh-8.2p1]# service sshd restart

如果連不上注意檢查以上內(nèi)容及關閉selinux

[root@SCJG-NTP openssh-8.2p1]# setenforce 0
[root@SCJG-NTP openssh-8.2p1]# sed -i s#SELINUX=enforcing#SELINUX=disabled# /etc/selinux/config

至此升級/安裝完成。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容