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

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

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

testuser@localhost ~ $ ssh -i ~/mykey root@172.22.1.1

Authenticated with partial success.
root@172.22.1.1'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 root@172.22.1.1

[root@centos ~]#

 

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

testuser@localhost ~ $ ssh root@172.22.1.1

Password:
[root@centos ~]#

 

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

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

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

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

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

 

參考資料:sshd_config: AuthenticationMethods

 

文章標籤
創作者介紹

亂打一通的心情日記

ephrain 發表在 痞客邦 PIXNET 留言(0) 人氣()