Linux

如何判斷使用什麼方法從 bashrc 登錄(密碼與密鑰文件)

  • August 9, 2018

有沒有辦法檢查剛剛登錄帳戶的使用者正在使用什麼身份驗證方法?

如果有人使用密碼而不是密鑰文件,我喜歡在登錄後列印出警告。

當然,一種解決方案是檢查 ssh 日誌。但是有沒有更好的方法來做到這一點?由於查找日誌可能會影響性能,具體取決於您用於收集此資訊的日誌大小和方法。

我們正在使用 SUSE 和 Ubuntu。

您可以將指令添加到鍵的authorized_keys條目中,以便為使用該鍵的會話的環境添加值。這是來自sshd文件:

environment=“NAME=value”

指定在使用此鍵登錄時將字元串添加到環境中。以這種方式設置的環境變數會覆蓋其他預設環境值。這種類型的多個選項是允許的。預設情況下禁用環境處理,並通過PermitUserEnvironment選項進行控制。

因此,authorized_keys 條目可能如下所示:

environment="SSHKEY=bob_key" ssh-rsa AAAAB3NzaC...iQ== bob@bobspc

當使用者的 .bashrc 執行時,SSHKEY 變數的存在與否將指示該特定密鑰是否用於驗證。

這顯然不是一個通用的解決方案。您必須使用此指令註釋每個 authorized_keys 文件中的每個鍵條目。如果使用者有權更改他的 、 或 文件,則使用者可以.bashrc破壞authorized_keys檢查.ssh/rc

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