[Linux] 修改 sshd 設定檔,調整 ssh 登入的驗證方式 (public key/密碼)

[Linux] 修改 sshd 設定檔,調整 ssh 登入的驗證方式 (public key/密碼)

最近友軍的 Linux 專案,把 ssh 的登入選項改變了,

原本使用 ssh key 可以直接登入不用打密碼,現在用了 key 的話,

會看到 Authenticated with partial success,但接著還是要打密碼才能登入:

testuser@localhost ~ $ ssh -i ~/mykey [email protected]
Authenticated with partial success.
[email protected]'s password:
[root@centos ~]#

 

研究了一下,原來這只是修改了 sshd 的設定檔~

打開 /etc/ssh/sshd_config 編輯一下,

可以看到有個 AuthenticationMethods 的設定,目前的值是 publickey,password,

這代表首先要先通過 publickey 的驗證後,再通過密碼驗證 (將 , 想像成 AND 運算)~

如果將這行用 # 變成註解的話,就會回復預設值,

可以用 public key 或是用密碼登入 (二擇一):

#AuthenticationMethods publickey,password

 

改好之後,要重啟 sshd 的服務:

systemctl restart sshd

 

重新用 key 登入看看,果然不需要密碼也能直接登入了:

testuser@localhost ~ $ ssh -i ~/mykey [email protected]
[root@centos ~]#

 

不使用 key,單純用密碼也能登入:

testuser@localhost ~ $ ssh [email protected]
Password:
[root@centos ~]#

 

不過從文件的說明來看,AuthenticationMethods 這裡面還可以有空白,好像是代表 OR 運算,

也就是說像 AuthenticationMethods publickey,publickey password 的話,

代表第一步要通過 publickey 的驗證,

接著第二步要通過另一個 publickey 驗證 (和第一個不同的 key) 或是密碼驗證。

查了半天還是有點霧沙沙,不知道有沒有理解錯誤…

 

參考資料:sshd_config: AuthenticationMethods

 

(本頁面已被瀏覽過 5,159 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料