Amazon EMR
管理指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

通过 SSH 连接使用 Kerberos 的集群

此部分演示了通过 Kerberos 进行身份验证的用户连接到 EMR 集群主节点的步骤。

用于 SSH 连接的每台计算机必须安装了 SSH 客户端和 Kerberos 客户端应用程序。默认情况下,Linux 计算机很可能包括这些内容。例如,大多数 Linux、Unix 和 macOS 操作系统上都会安装 OpenSSH。您可以通过在命令行键入 ssh 来检查 SSH 客户端。如果您的计算机无法识别该命令,请安装 SSH 客户端以便连接主节点。OpenSSH 项目会免费提供一套完整的 SSH 工具执行文件。有关更多信息,请访问 OpenSSH 网站。Windows 用户可以使用 PuTTY 等应用程序作为 SSH 客户端。

有关 SSH 连接的更多信息,请参阅连接到集群

SSH 使用 GSSAPI 对 Kerberos 客户端进行身份验证,您必须为集群主节点上的 SSH 服务启用 GSSAPI 身份验证。有关更多信息,请参阅 为 SSH 启用 GSSAPI。SSH 客户端也必须使用 GSSAPI。

在以下示例中,对于 MasterPublicDNS,请使用集群详细信息窗格的 Summary (摘要) 选项卡上的 Master public DNS (主公有 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 文件

  1. 使用 SSH 通过 EC2 密钥对和默认 hadoop 用户连接到主节点,例如 hadoop@MasterPublicDNS。有关详细说明,请参阅 连接到集群

  2. 从主节点,复制 /etc/krb5.conf 文件的内容。有关更多信息,请参阅连接到集群

  3. 在将连接到集群的每个客户端计算机上,基于上一步中制作的副本创建一个相同的 /etc/krb5.conf 文件。

使用 Kinit 和 SSH

用户每次使用 Kerberos 凭证从客户端计算机连接时,该用户必须首先续订 Kerberos 票证以供自己在客户端计算机上使用。此外,SSH 客户端必须配置为使用 GSSAPI 身份验证。

通过 SSH 连接到使用 Kerberos 的 EMR 集群

  1. 使用 kinit 续订您的 Kerberos 票证,如以下示例所示

    kinit user1
  2. 使用 ssh 客户端以及您在集群专用 KDC 中创建的委托人或者 Active Directory 用户名。确保已启用 GSSAPI 身份验证,如以下示例所示。

    示例:Linux 用户

    -K 选项指定 GSSAPI 身份验证。

    ssh -K user1@MasterPublicDNS

    示例:Windows 用户 (PuTTY)

    确保已启用会话的 GSSAPI 身份验证选项,如下所示: