通过 SSH 连接使用 Kerberos 的集群 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

通过 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,使用在集群详细信息窗格的摘要选项卡上为主节点公有 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 身份验证选项,如下所示: