当 Kerberos 使用相互身份验证模型时,使用 Kerberos 身份验证的 ssh 登录在每个客户端上究竟是如何工作的?

当 Kerberos 使用相互身份验证模型时,使用 Kerberos 身份验证的 ssh 登录在每个客户端上究竟是如何工作的?

我使用采用 Kerberos 的 SSSD 来管理系统身份验证。

由于 kerberos 支持相互身份验证模型,即客户端和服务器都应该支持 Kerberos,那么从任何客户端(如 putty 或其他 Linux 机器)到服务器的 SSH 究竟如何工作,不管它是否支持 Kerberos?

或者 sssd 守护进程是否充当 Kerberos 身份验证的实际客户端,如果我使用纯 kerberos(没有 SSSD)配置 SSH 身份验证,登录是否仍然有效,或者此处 SSHD 守护进程本身是否充当 Kerberos 身份验证的客户端。

我对什么是客户端、什么是服务器感到困惑。例如:SSH 登录、基于 Web 的登录等。

答案1

PuTTY (https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/kerberos-gssapi.html)和 OpenSSH(https://www.openssh.com/txt/release-3.0) 可以进行 Kerberos 化(即,它们知道如何请求当前登录的 Kerberos 票证,并知道如何将其提交给 SSH 服务器进行检查)。在“Kerberos 如何与 SSH 协同工作?”的答案之一 (从技术上讲,你问的情况属于第二次登录)。

无论是否支持 Kerberos,从任何客户端(如 putty 或其他 Linux 机器)通过 SSH 连接到服务器究竟是如何工作的?

SSH 协议可以支持多种身份验证方案(例如,,keyboard-interactive等)。登录时publickeygssapi-with-micSSH 客户端将按照首选顺序尝试每个身份验证方案并且通常会回退到其他方案,直到没有剩余方案(此时登录失败)。Kerberos(例如gssapi-with-mic)只是可以尝试的方案之一。

如果我使用纯 Kerberos(没有 SSSD)配置 SSH 身份验证,登录是否仍然有效,或者 SSHD 守护程序本身是否作为 Kerberos 身份验证的客户端

看起来 SSH 客户端/服务器可能会与各种不同的程序进行通信以执行 Kerberos,但我不清楚它们是如何交互的(尽管我知道您不必使用 SSSD 在系统上执行 Kerberos,但这样做确实有一些优势)。您可以在RHEL 7 关于 Kerberos. 每个想要“执行” Kerberos 的程序通常都是根据适当的 Kerberos 库构建的(因此 Kerberos 对于想要使用它进行身份验证的程序来说并不是完全透明的)。

我对什么是客户端、什么是服务器感到困惑。例如:SSH 登录、基于 Web 的登录等。

什么是“客户端”以及什么是“服务器”可能取决于对话的上下文。维基百科对 Kerberos 协议有很好的描述更重要的是引入了 AS、KDC、TGC、TGS 等术语来减少歧义。

相关内容