簡單記錄,自用CentOS7.4虛擬機與ALiYunVPS,在配置ssh登錄身份驗證時碰到的問題。
阿里雲VPS:因為在重置磁盤時選擇了密鑰對的身份驗證方式,因此VPS中的CentOS7.4中的 /etc/ssh/sshd_config 文件中,在初始化時就被添加了一行禁止密碼登錄的配置:
1
|
PasswordAuthentication no
|
使用vim編輯配置文件將其改為:
1
|
PasswordAuthentication
yes
|
即可使用密碼進行ssh登錄了。
在查找相關資料的過程中,無意看了一些如何配置啟用密鑰對進行SSH登錄的方法,幾乎全部都是說修改 /etc/ssh/sshd_config 文件,找到其中這幾行配置注釋,並指定需要的值:
1
2
3
4
5
6
7
|
#允許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 配置文件中的
1
|
Protocol 2
|
來制定使用哪一個版本。
RSAAuthentication (rsa認證)是只支持第1代ssh通訊協議使用的配置項,在CentOS7.4中被廢除了,而且前面提到過CentOS7開始預設使用第二代通訊協議,在CentOS7.4中沒有找到指定協議版本的配置行,個人猜測是CentOS7.4全面拋棄第1代協議。
第2代ssh通訊協議的密鑰驗證選項是
1
|
#PubkeyAuthentication yes
|
這個選項默認是注釋掉的,並且是默認開啟的,因此我們在使用第二代ssh通訊協議時不需要再去糾結 RSAAuthentication 選項了,在CentOS7.4中其強行添加 RSAAuthentication 配置會觸發系統對它的廢除提示。
1
|
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