通过 SSH 连接使用 Kerberos 的集群
此部分演示了通过 Kerberos 进行身份验证的用户连接到 EMR 集群主节点的步骤。
用于 SSH 连接的每台计算机必须安装了 SSH 客户端和 Kerberos 客户端应用程序。默认情况下,Linux 计算机很可能包括这些内容。例如,大多数 Linux、Unix 和 macOS 操作系统上都会安装 OpenSSH。您可以通过在命令行键入 ssh 来检查 SSH 客户端。如果您的计算机无法识别该命令,请安装 SSH 客户端以连接到主节点。OpenSSH 项目会免费提供一套完整的 SSH 工具执行文件。有关更多信息,请访问 OpenSSH
有关 SSH 连接的更多信息,请参阅连接到集群。
SSH 使用 GSSAPI 对 Kerberos 客户端进行身份验证,您必须为集群主节点上的 SSH 服务启用 GSSAPI 身份验证。有关更多信息,请参阅为 SSH 启用 GSSAPI。SSH 客户端也必须使用 GSSAPI。
在以下示例中,对于 MasterPublicDNS
,使用在集群详细信息窗格的摘要选项卡上为主节点公有 DNS显示的值,例如 ec2-11-222-33-44.compute-1.amazonaws.com
。
krb5.conf(非 Active Directory)的先决条件
使用没有 Active Directory 集成的配置时,除了 SSH 客户端和 Kerberos 客户端应用程序之外,每个客户端计算机必须具有 /etc/krb5.conf
文件的副本,该文件与集群主节点上的 /etc/krb5.conf
文件匹配。
复制 krb5.conf 文件
使用 Kinit 和 SSH
用户每次使用 Kerberos 凭证从客户端计算机连接时,该用户必须首先续订 Kerberos 票证以供自己在客户端计算机上使用。此外,SSH 客户端必须配置为使用 GSSAPI 身份验证。
通过 SSH 连接到使用 Kerberos 的 EMR 集群
-
使用
kinit
续订您的 Kerberos 票证,如以下示例所示kinit
user1
-
使用
ssh
客户端以及您在集群专用 KDC 中创建的委托人或者 Active Directory 用户名。确保已启用 GSSAPI 身份验证,如以下示例所示。示例:Linux 用户
-K
选项指定 GSSAPI 身份验证。ssh -K
user1
@MasterPublicDNS
示例:Windows 用户 (PuTTY)
确保已启用会话的 GSSAPI 身份验证选项,如下所示: