Ssh

可以讓 sshd (openssh) 記錄基於失敗密鑰的登錄嘗試的公鑰嗎?

  • December 4, 2018

據我了解,sshd(在我的情況下為openssh)通常會/可能會記錄試圖通過密鑰進行身份驗證的傳入連接的公鑰的指紋/雜湊。

我正在尋找的是傳入連接的完整公鑰,特別是失敗的登錄。那可能嗎?

如果是這樣,怎麼做?

顯然,這不是 openssh 的目前功能。

為了我自己,我編寫了這個特性,它可以在這裡找到:

https://github.com/catskul/openssh-portable/tree/print-public-key

diff --git a/auth2-pubkey.c b/auth2-pubkey.c
index 2fb5950..82cce57 100644
--- a/auth2-pubkey.c
+++ b/auth2-pubkey.c
@@ -122,6 +122,17 @@ userauth_pubkey(struct ssh *ssh)
                   "(received %d, expected %d)", __func__, key->type, pktype);
               goto done;
       }
+       if (log_level_get() >= SYSLOG_LEVEL_DEBUG1) {
+               if ((b = sshbuf_new()) == NULL)
+                       fatal("%s: sshbuf_new failed", __func__);
+               if ((r = sshkey_format_text(key, b)) != 0)
+                       fatal("%s: sshkey_format_text failed: %s", __func__,
+                               ssh_err(r));
+               debug("%s: public key of %s: %s", __func__, authctxt->user,
+                       sshbuf_ptr(b));
+               sshbuf_free(b);
+               b = NULL;
+       }
       if (sshkey_type_plain(key->type) == KEY_RSA &&
           (ssh->compat & SSH_BUG_RSASIGMD5) != 0) {
               logit("Refusing RSA key because client uses unsafe "

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