Ssh

沒有authorized_keys文件的公鑰認證

  • October 27, 2014

我在 Linux 伺服器上有很多 ssh 公鑰登錄,例如:

Jul 25 11:41:01 host sshd[24594]: Accepted publickey for root from xxx.xxx.xx.xx port 33374 ssh2

這對我來說很奇怪,因為目錄中沒有authorized_keys文件/root/.ssh。中的AuthorizedKeysFile選項/etc/ssh/sshd_config具有預設值.ssh/authorized_keys

我想知道如何使用公鑰身份驗證登錄到伺服器?

我已經弄清楚發生了什麼。消息通過 UDP 從遠端主機到達伺服器。起初我沒有註意到主機欄位發生變化,這是我的錯誤。

順便說一句,實際上有可能authorized_keys使用不涉及文件的公鑰身份驗證登錄。RedHat(和變體)有一個受支持的 OpenSSH 更新檔,其中添加了AuthorizedKeysCommandAuthorizedKeysCommandRunAs選項。該更新檔已在OpenSSH 6.2的上游合併。引用手冊頁

AuthorizedKeysCommand

指定用於查找使用者公鑰的程序。該程序將以其第一個參數被授權的使用者名呼叫,並且應該在標準輸出 AuthorizedKeys 行上產生(參見 sshd(8) 中的 AUTHORIZED_KEYS)。預設情況下(或設置為空字元串時)沒有 AuthorizedKeysCommand 執行。如果 AuthorizedKeysCommand 沒有成功授權使用者,授權將落入 AuthorizedKeysFile。請注意,此選項僅在 PubkeyAuthentication 打開時有效。

AuthorizedKeysCommandRunAs

指定在其帳戶下執行 AuthorizedKeysCommand 的使用者。空字元串(預設值)表示使用被授權的使用者。

引用自:https://unix.stackexchange.com/questions/146613