1. 程式人生 > >CentOS7.4踩坑

CentOS7.4踩坑

個人 虛擬 資料 sta linux ssh 密鑰認證 toc 學習 pro

簡單記錄,自用CentOS7.4虛擬機與ALiYunVPS,在配置ssh登錄身份驗證時碰到的問題。


阿裏雲VPS:因為在重置磁盤時選擇了密鑰對的身份驗證方式,因此VPS中的CentOS7.4中的 /etc/ssh/sshd_config 文件中,在初始化時就被添加了一行禁止密碼登錄的配置:

PasswordAuthentication no

使用vim編輯配置文件將其改為:

PasswordAuthentication yes

即可使用密碼進行ssh登錄了。


在查找相關資料的過程中,無意看了一些如何配置啟用密鑰對進行SSH登錄的方法,幾乎全部都是說修改 /etc/ssh/sshd_config 文件,找到其中這幾行配置註釋,並指定需要的值:

#允許root認證登錄
PermitRootLogin yes
#允許密鑰認證
RSAAuthentication yes
PubkeyAuthentication yes
#默認公鑰存放的位置
AuthorizedKeysFile	.ssh/authorized_keys

於是就順便打開這個配置文件看了看,卻發現沒有找到 RSAAuthentication 這行註釋或者配置項,但是在同目錄下 ssh_config 文件中找到了這行配置,對此感到非常的不解,開始認為VPS使用的系統鏡像是被修改過的刪除了該行,於是使用本地安裝了CentOS官方鏡像的虛擬機查看該文件,也沒有這一行配置。

帶著疑惑使用某不存在的搜索引擎組合關鍵字 CentOS7 CentOS7.4 RSAAuthentication 查找了一番才找到了解釋。


首先是:

為什麽在 CentOS7.4 的配置文件中沒有 RSAAuthentication 這一行?

CentOS7.4相對於之前版本,做了一些與sshd相關的安全更新來加強sshd的安全性。其中之一就是棄用RSAAuthentication支持。從CentOS7.3升級上來的用戶會在升級時被告知這一變化。

作為從CentOS7.4直接開始使用,也沒有閱讀過發行說明的我,自然是不清楚這一改動。

看到這裏又產生了新的問題:

什麽是棄用 RSAAuthentication 支持,明明還可以使用密鑰對進行ssh登錄,是默認開啟不允許關閉的意思嗎?

要回答這個問題,首先要了解ssh通訊協議,目前SSH的通訊協議分為第一代和第二代,不用多說第二代有更多功能、選項、和更高的安全性,它是在2006 正式由IETF發表,至今已有十年。由於兩代SSH協定並不兼容,我們只能二選其一,CentOS 7的SSH預設使用第二代協定,所以無需做任何設定。

在同時支持這兩個協議的系統中,可以通過 /etc/ssh/sshd_config 配置文件中的

Protocol 2

來制定使用哪一個版本。

RSAAuthentication (rsa認證)是只支持第1代ssh通訊協議使用的配置項,在CentOS7.4中被廢除了,而且前面提到過CentOS7開始預設使用第二代通訊協議,在CentOS7.4中沒有找到指定協議版本的配置行,個人猜測是CentOS7.4全面拋棄第1代協議。

第2代ssh通訊協議的密鑰驗證選項是

#PubkeyAuthentication yes

這個選項默認是註釋掉的,並且是默認開啟的,因此我們在使用第二代ssh通訊協議時不需要再去糾結 RSAAuthentication 選項了,在CentOS7.4中其強行添加 RSAAuthentication 配置會觸發系統對它的廢除提示。

reprocess config line 38: Deprecated option RSAAuthentication

看到這裏所有的疑惑就都解開了,將這個小坑記錄下來希望後來的同學能少走彎路。


參考資料(第二條資料內容有很多值得學習):

CentOS7.4棄用RSAAuthentication支持 : https://ashub.cn/articles/21

Linux系統下如何配置SSH_Centos7 ssh連接配置 CentOS7下安全配置 : http://www.linuxdown.net/install/config/2016/0611/5853.html

Linux-ssh的rsa認證登錄配置 : https://www.cnblogs.com/wulaoer/p/5486579.html

Linux ssh服務開啟秘鑰和密碼認證 : https://www.cnblogs.com/xiaochina/p/6867298.html

CentOS7.4踩坑