Centos7 openssh升級到7.9p1
由於專案構建時間比較長,近期安全檢查發現openssh有漏洞。所以要升級openssh到7.9p1版本。由於ssh用於遠端連線,所以要謹慎操作。
建議生成環境要先做測試,之後再在生產環境升級。
1 前期準備
1.1 依賴安裝
1、 OpenSSL版本:目前OpenSSH7.9不支援OpenSSH1.1.x以上。否則編譯的時候會報錯。
2、 Zlib1.1.4或1.2.1.2或更高版本
3、 gcc:因為編譯需要gcc
4、 openssl-devel:編譯時需要
1.2 注意事項
1、 前期多開啟一個xshell視窗。保證連線正常。因為可能出現升級失敗。結束後要確定好再關閉。
2、 備份sshd_config配置檔案(方便後期使用或者方便升級失敗使用)
3、 最好關閉防火牆,如不關閉防火牆請開啟ssh需要的埠和telnet需要的埠。如果ssh不是22埠最好開啟22埠。因為ssh配置檔案預設22埠。所以建議關閉防火牆。
2、升級之後要重建xshell的session不然會出項下面提示
1 安裝telnet
1.1 安裝telnet
為防止openssh升級失敗。所以安裝telnet。保證openssh升級失敗也可以通過telnet連線伺服器,進行恢復操作。並不用去機房。
#yum install -y telnet-server
#yum install -y xinetd
#systemctl start telnet.socket
#systemctl start xinetd
預設情況下,系統是不允許root使用者telnet遠端登入的。如果要使用root使用者直接登入,需設定如下內容。或者可以新增一個可以登入的使用者,登入並su到root使用者。
#echo 'pts/0' >>/etc/securetty
#echo 'pts/1' >>/etc/securetty
#systemctl restart telnet.socket
1.2 驗證telnet
確保使用windows或者其他Linux伺服器可以telnet到此機器上。並且可以使用root使用者。
1 安裝openssh
1.1 下載openssh
Openssh官網地址:https://www.openssh.com/
http下載地址:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
選擇openssh-7.9p1.tar.gz進行下載。並上傳到伺服器上。
1.2 解除安裝舊的ssh
#cp -r /etc/ssh /etc/ssh.old #備份一些之前的檔案
#rpm -qa|grep openssh
#rpm -e --nodeps openssh-clients-6.6.1p1-31.el7.x86_64
#rpm -e --nodeps openssh-6.6.1p1-31.el7.x86_64
#rpm -e --nodeps openssh-server-6.6.1p1-31.el7.x86_64
#rpm -qa|grep openssh
如果之前就是原始碼安裝的,找到之前的安裝包,在裡面執行
#make uninstall
1.3 安裝OpenSSH
1、連線到其他計算機時,OpenSSH作為兩個程式執行。第一個程式是特權程式,並根據需要控制許可權的頒發。第二個程式與網路通訊。設定適當的環境需要額外的安裝步驟,這些步驟通過以root使用者身份發出以下命令來執行 :
#install -v -m700 -d /var/lib/sshd
#chown -v root:sys /var/lib/sshd
#groupadd -g 50 sshd
#useradd -c 'sshd PrivSep' -d /var/lib/sshd -g sshd -s /bin/false -u 50 sshd
2、解壓安裝
#tar -zxvf openssh-7.9p1.tar.gz
#cd openssh-7.9p1
#./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd
#make
如果報錯
① configure: error: no acceptable C compiler found in $PATH
問題解決
yum install gcc
② configure: error: * zlib.h missing - please install first or check config.log *
問題解決
yum install openssl openssl-devel -y 安裝相關依賴包
3、修改相應檔案許可權
#chmod 600 /etc/ssh/ssh_host_rsa_key
#chmod 600 /etc/ssh/ssh_host_ecdsa_key
#chmod 600 /etc/ssh/ssh_host_ed25519_key
4、安裝
#make install
5、配置
#install -v -m755 contrib/ssh-copy-id /usr/bin
#install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1
#install -v -m755 -d /usr/share/doc/openssh-7.9p1
#install -v -m644 INSTALL LICENCE OVERVIEW README*
#install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.9p1
命令解釋:
--sysconfdir=/etc/ssh:這可以防止安裝配置檔案 /usr/etc。
--with-md5-passwords:這使得可以使用MD5密碼。
--with-pam:此引數在構建中啟用 Linux-PAM支援。
--with-xauth=/usr/bin/xauth:為X身份驗證設定xauth二進位制檔案的預設位置。如果將xauth安裝到其他路徑,請更改位置。這也可以sshd_config使用XAuthLocation關鍵字進行控制。如果已安裝Xorg,則可以省略此開關。
--with-kerberos5=/usr:此選項用於在構建中包含Kerberos 5支援。
--with-libedit:此選項為sftp啟用行編輯和歷史記錄功能。
6、根據自身需求改寫配置檔案。因為配置檔案為初始配置檔案。所以和之前的不一樣。可以使用備份配置檔案覆蓋。
注意:預設是22埠,但是不能root直接登入。如果想直接使用root登入執行以下命令
#echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
2 開機自啟動
ssh服務必須開機自啟動,不然重啟的時候爆炸。
#cp -p contrib/redhat/sshd.init /etc/init.d/sshd
#chmod +x /etc/init.d/sshd
#chkconfig --add sshd
#chkconfig sshd on
#chkconfig --list sshd
#systemctl restart sshd
3 驗證操作
# ssh -V
OpenSSH_7.9p1, OpenSSL 1.0.2k-fips 26 Jan 2017
使用其他電腦或者其他的xshell等工具連線,驗證要謹慎。
4 回滾操作
如果之前是rpm包安裝的。並且按照以上步驟操作,可以直接以下命令進行回滾
# yum -y install openssh-clients
# yum -y install openssh-server
# yum -y install openssh
5 結束操作
之前的步驟一定要謹慎檢視。檢視是否可以連線,會不會出現什麼問題。
1、 恢復telnet的禁止root登入特權。如果之前關閉就關閉telnet。
2、 開啟防火牆。並驗證連線。
3、最後再關閉之前開xshell介面。
6 參考文件
官方文件:
http://www.linuxfromscratch.org/blfs/view/svn/postlfs/openssh.html
相關文章
- Centos7 升級openssh到最高版本CentOS
- Centos升級到openssh9.7CentOS
- OpenSSH升級(從OpenSSH_7.4p1升級到OpenSSH_8.4p1) [操作指令碼]指令碼
- Centos7 升級至openssh-9.8p1CentOS
- suse11 openssh 升級到8.0
- redhat系統升級openssh到7.5Redhat
- aix升級opensshAI
- Ubuntu升級opensshUbuntu
- CentOS6.9下升級預設的OpenSSH操作記錄(升級到OpenSSH_7.6p1)CentOS
- 升級openssh7.9
- Linux openssh升級8.0Linux
- centos6.5中openssh從5.3升級到7.3CentOS
- 原始碼升級SUSE openssh原始碼
- Centos6.5 離線 Openssh 升級CentOS
- centos7 openssl升級版本到OpenSSL 1.1.1nCentOS
- openssh 漏洞修復 openssl升級 OpenSSH_9.8p1麒麟系統
- centos7 核心升級CentOS
- Ubuntu16.04升級openssh-9.8p1Ubuntu
- Ctyun系統升級OpenSSH 9.3詳細教程
- RockyLinux8伺服器升級openssh9.9Linux伺服器
- Openssh-7.9p1升級+系統調優
- RHEL6_CentOS6_Openssh8.0p1升級CentOS
- redhat 7.4從openssh7.6離線升級openssh8.4p1解決方法Redhat
- oraclelinux9.2內網升級OpenSSH9.8p1OracleLinux內網
- openSSH升級公鑰失效Permission denied (publickey)解決方案
- 升級openssh前安裝zlib報異常configure aborting
- Openssh 8.4p1及Openssl 1.1.1h升級
- 升級centos7自帶的Python2.7到Python3.8CentOSPython
- CentOS7升級openssl1.1.1CentOS
- CentOS7 升級 Git 歷程CentOSGit
- openssh升級7.4p1至8.4p1、openssl升級至openssl-1.1.1h
- Centos 7.4系統升級OpenSSH 8.4p1服務CentOS
- centos7 mysql5.6升級5.7CentOSMySql
- oracle 10 rac 升級 10.2.0.1升級到10.2.0.5Oracle
- 記一次在openEuler系統下離線編譯升級到openssh9.8p1編譯
- 在centos7安裝nodejs並升級nodejs到最新版本CentOSNodeJS
- RHEL7X_CentOS7X_升級Openssh7.6p1CentOS
- ccproject升級到1135Project