Linux
如何判斷使用什麼方法從 bashrc 登錄(密碼與密鑰文件)
有沒有辦法檢查剛剛登錄帳戶的使用者正在使用什麼身份驗證方法?
如果有人使用密碼而不是密鑰文件,我喜歡在登錄後列印出警告。
當然,一種解決方案是檢查 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
。