Ssh
可以讓 sshd (openssh) 記錄基於失敗密鑰的登錄嘗試的公鑰嗎?
據我了解,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 "