1、為了防止升級失敗登陸不了,所以需要安裝telnet
mkdir /root/ssh_update
yum install -y telnet-server
yum install -y xinetd
centos6:
sed -i '/disable/s/yes/no/' /etc/xinetd.d/telnet
service xinetd start
檢查下23端口,證明telnet服務已經運行了
centos7:
systemctl start telnet.socket
systemctl start xinetd
注意:
默認情況下,系統是不允許root用戶telnet遠程登錄的。如果要使用root用戶直接登錄,需設置如下內容。或者可以添加一個可以登錄的用戶,登錄並su到root用戶。
echo 'pts/0' >>/etc/securetty
echo 'pts/1' >>/etc/securetty
centos6:
service xinetd restart
centos7:
systemctl restart telnet.socket
驗證telnet(默認是23端口):
2、檢查環境
官方給出的文檔中提到的先決條件openssh安裝依賴zlib1.1.4並且openssl>=1.0.1版本就可以了。那么直接看當前系統的openssl版本是多少
ps:沒有問題,版本不需要升級
# 安裝相關組件並升級openssh:
yum install -y gcc openssl-devel pam-devel zlib zlib-devel
# 備份原來的數據
mv /etc/ssh/ /mnt/ssh.bak
# 刪除現在安裝sshd相關軟件包
rpm -e `rpm -qa | grep openssh` --nodeps
3、下載需要的源碼包並升級openssh:
# 下載openssh7.9的源碼包
wget \
https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.9p1.tar.gz
tar xf openssh-7.9p1.tar.gz
cd openssh-7.9p1
# 編譯sshd
./configure --sysconfdir=/etc/ssh
# 安裝sshd
make && make install
# 查看下ssh命令的執行路徑
[root@localhost ~]# which sshd
/usr/local/sbin/sshd
# 復制源碼解壓路勁的開機啟動腳本
cp /root/ssh_update/openssh-7.9p1/contrib/redhat/sshd.init /etc/init.d/sshd
# 修改開機啟動文件
sed -i '25cSSHD=/usr/local/sbin/sshd' /etc/init.d/sshd
sed -i '41c/usr/local/bin/ssh-keygen -A' /etc/init.d/sshd
# 修改配置文件,允許root通過ssh遠程登陸
sed -i "/#PermitRootLogin prohibit-password/aPermitRootLogin yes" \
/etc/ssh/sshd_config
# 復制文件到/usr/local/bin/下
cp /root/ssh_update/openssh-7.9p1/contrib/ssh-copy-id /usr/local/bin
chmod +x ssh-copy-id
# 啟動sshd服務
service sshd start
# 查看下ssh版本
[root@localhost ~]# ssh -V
OpenSSH_7.9p1, OpenSSL 1.0.1e-fips 11 Feb 2013
###################################################################
OpenSSH 8.0 發布了,此版本緩解了 scp(1) 工具和協議漏洞 CVE-2019-6111,該漏洞此前我們之前報導過:知名文件傳輸協議 SCP 被曝存在 35 年歷史的安全漏洞。 將文件從遠程系統復制到本地目錄時,SCP 客戶端無法驗證 SCP 服務器返回的對象是否與請求的東西一致,這使得攻擊者可以使用惡意服務器控制的內容創建或破壞本地文件。 OpenSSH 8.0 的緩解措施添加了客戶端檢查,查看從服務器發送的文件名與命令行請求是否匹配。 SCP 協議已經過時,不靈活且不易修復,OpenSSH 官方建議使用更現代的協議進行文件傳輸,如 sftp 和 rsync。 此版本新特性包括: ssh(1)、ssh-agent(1)、ssh-add(1):PKCS#11 token 中添加對 ECDSA 密鑰的支持。 ssh(1)、sshd(8):基於 Streamlined NTRU Prime 4591^761 和 X25519 的組合,添加實驗性量子計算抗性密鑰交換方法。 ssh-keygen(1):將默認 RSA 密鑰大小增加到 3072 位。 ssh(1):允許“PKCS11Provider = none”覆蓋 ssh_config 中 PKCS11Provider 指令的后續實例。 ssh(1):提示是否錄制新主機密鑰時,輸入密鑰指紋作為“yes”。 ssh-keygen(1):在單個命令行調用上簽名多個證書時,允許自動遞增證書序列號。 scp(1)、sftp(1):接受 -J 選項作為 scp 和 sftp 命令行上 ProxyJump 的別名。 ssh-agent(1)、ssh-pkcs11-helper(8)、ssh-add(1):接受“-v”命令行標志以增加輸出的詳細程度;將詳細標志傳遞給子進程,例如從 ssh-agent 啟動的 ssh-pkcs11-helper。 ssh-add(1):添加“-T”選項以允許通過執行簽名和驗證來測試代理中的密鑰是否可用。 sshd(8):在 PAM 環境中暴露 $SSH_CONNECTION。 完整更新內容查看更新日志: http://www.openssh.com/txt/release-8.0