本文为您介绍如何使用SSH方式(SSH密钥对或SSH密码方式)在Windows和Linux环境中登录集群。

前提条件

  • 已创建集群,详情请参见创建集群
  • 确保集群所在的安全组已开放22端口。您可以在创建集群时打开远程登录开关,也可以在集群创建好之后手动添加安全组规则来开放22端口,具体操作请参见添加安全组规则
    说明 在安全组规则中手动添加入方向规则,授权类型为IPv4地址段访问,端口为22/22
  • 确保本地服务器与集群主节点网络连通。您可以在创建集群时打开挂载公网开关,或者在集群创建好之后在ECS控制台上为主节点挂载公网,为主节点ECS实例分配固定公网IP或EIP,详情请参见绑定弹性网卡

背景信息

在本地计算机的终端与集群主节点创建SSH连接之后,您可以通过Linux命令监控集群并与集群交互,也可以在SSH连接中创建隧道以查看开源组件的Web页面,详情请参见通过SSH隧道方式访问开源组件Web UI

获取主节点公网IP地址

  1. 进入详情页面。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
  2. 集群基础信息页面的主机信息区域,获取主节点的公网IP地址。
    IP

SSH密钥方式

说明 主节点公网IP地址请参见获取主节点公网IP地址
您可以通过以下三种方式登录集群,详细信息如下:
  • 本地使用Linux操作系统
    下面步骤以私钥文件ecs.pem为例进行介绍:
    1. 执行以下命令,修改私钥文件的属性。
      chmod 400 ~/.ssh/ecs.pem

      ~/.ssh/ecs.pemecs.pem私钥文件在本地服务器上的存储路径。

    2. 执行以下命令,连接主节点。
      ssh -i ~/.ssh/ecs.pem root@<主节点公网IP地址>
  • 本地使用Windows操作系统(通过PuTTY配置信息)
    您可以按照以下方式登录主节点。
    1. 下载PuTTY和PuTTYgen
    2. .pem私钥文件转换为.ppk私钥文件。
      1. 运行PuTTYgen。本示例中PuTTYgen版本为0.73。
      2. Actions区域,单击Load,导入创建集群时保存的私钥文件。

        导入时注意确保导入的格式要求为All files (*.*)

      3. 选择待转换的.pem私钥文件,单击打开
      4. 单击Save private key
      5. 在弹出的对话框中,单击,指定.ppk私钥文件的名称,然后单击保存

        保存转化后的私钥到本地。例如:kp-123.ppk

    3. 运行PuTTY。
    4. 选择Connection > SSH > Auth,在最下面一个配置项Private key file for authentication中,单击Browse,选择转化后的密钥文件。
    5. 单击Session,在Host Name (or IP address)下的输入框中,输入登录账号和主节点公网IP地址。
      格式为root@[主节点公网IP地址],例如root@10.10.xx.xxsession
    6. 单击Open
      当出现以下提示信息时,说明您已经成功登录实例。putty
  • 本地使用Windows操作系统(通过命令配置信息)
    打开CMD,输入以下命令登录集群。
    ssh -i <.pem私钥文件在本地机上的存储路径> root@<主节点公网IP地址>
    cmd

SSH密码方式

说明 以下步骤中涉及的用户名,密码分别是root用户和创建集群时设置的密码。主节点公网IP地址请参见获取主节点公网IP地址
针对不同操作系统,详细的操作步骤如下:
  • 本地使用Linux操作系统

    您可以在本地终端的命令行中运行如下命令连接主节点。

    ssh root@[主节点公网IP地址]
  • 本地使用Windows操作系统
    1. 下载并安装PuTTY。

      下载链接:PuTTY

    2. 启动PuTTY。
    3. 配置连接Linux实例所需的信息。
      • Host Name (or IP address):输入实例的固定公网IP或EIP。
      • Port:输入22
      • Connection Type:选择SSH
      • (可选)Saved Sessions:输入一个便于识别的名称,然后单击Save即可保存会话,下次登录时无需输入公网IP等信息。
    4. 单击Open
    5. 输入用户名(默认为root),然后按回车键。

      输入完成后按回车键即可,登录Linux实例时界面不会显示密码的输入过程。

常见问题

  • Q:如何在本地以免密方式登录集群?
    A:您可以通过以下步骤在本地以免密方式登录集群。
    1. 打开CMD,输入以下命令生成公钥。
      ssh-keygen
      本地服务器目录下会生成相应的公钥文件。ssh-key
    2. 将生成的公钥加入至待访问集群的主节点上。
      1. 进入待访问集群的/.ssh目录。
        cd ~/.ssh
      2. 配置主节点的密钥。
        vim authorized_keys
      3. 添加本地公钥中id_rsa的内容至authorized_keys中。
    3. 加入本地机器的IP地址至安全组。
      1. 获取机器的公网访问IP地址。

        为了安全的访问集群组件,在设置安全组策略时,推荐您只针对当前的公网访问IP地址开放。获取您当前公网访问IP地址的方法是,访问IP地址,即可查看您当前的公网访问IP地址。

      2. 添加安全组规则,以开启22端口。
        添加安全组规则,详情请参见添加安全组规则Security group
    4. 在CMD中,输入以下命令免密登录集群。
      ssh root@<主节点公网IP地址>
  • Q:如何登录Core节点?

    A:您可以通过以下步骤登录Core节点。

    1. 在Master节点上切换到hadoop账号。
      su hadoop
    2. 免密码登录到对应的Core节点。
      ssh emr-worker-1
    3. 通过sudo获得root权限。
      sudo su - root