ssh:连接到主机ec2-xxxxxxxx.compute-1.amazonaws.com端口22:连接被拒绝

时间:2018-04-20 06:32:27

标签: amazon-web-services amazon-ec2 emr amazon-emr

我首先列出了emr集群:

✗ aws emr list-clusters
{
    "Clusters": [
        {
            "Id": "j-MQIKB378OARL",
            "Name": "Spark cluster",
            "Status": {
                "State": "WAITING",
                "StateChangeReason": {
                    "Message": "Cluster ready after last step failed."
                },
                "Timeline": {
                    "CreationDateTime": 1524200251.319,
                    "ReadyDateTime": 1524201100.225
                }
            },
            "NormalizedInstanceHours": 6
        },

然后我尝试连接:

✗ aws emr ssh --cluster-id j-MQIKB378OARL --key-pair-file ~/.ssh/keys/key-pair.pem
ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=10 -i /Users/myuser/.ssh/keys/key-pair.pem hadoop@ec2-xxxxxxxxxx.compute-1.amazonaws.com -t
ssh: connect to host ec2-xxxxxxxxxx.compute-1.amazonaws.com port 22: Connection refused

我错过了什么吗?

2 个答案:

答案 0 :(得分:2)

您的实例的安全组似乎不允许传入的ssh流量。

来自AWS Documentation

  

通过安全组,您可以控制实例的流量,   包括可以到达您的实例的流量类型。对于   例如,您可以仅允许来自家庭网络的计算机进行访问   你的实例使用SSH。如果您的实例是Web服务器,则可以   允许所有IP地址使用HTTP或HTTPS访问您的实例,所以   外部用户可以浏览Web服务器上的内容。

使用控制台为IPv4上的入站SSH流量添加规则到安全组:

  1. 在Amazon EC2控制台的导航窗格中,选择Instances。选择您的实例并查看“描述”选项卡;安全组列出与实例关联的安全组。选择视图规则以显示对实例有效的规则列表。

  2. 在导航窗格中,选择“安全组”。选择与您的实例关联的其中一个安全组。

  3. 在详细信息窗格的“入站”选项卡上,选择“编辑”。在对话框中,选择Add Rule,然后从Type列表中选择SSH。

  4. 在“源”字段中,选择“我的IP”以使用本地计算机的公用IPv4地址自动填充该字段。或者,选择“自定义”并以CIDR表示法指定计算机或网络的公用IPv4地址。例如,如果您的IPv4地址是203.0.113.25,请指定203.0.113.25/32以CIDR表示法列出此单个IPv4地址。如果贵公司从某个范围分配地址,请指定整个范围,例如203.0.113.0/24。

  5. 选择保存。

答案 1 :(得分:0)

  1. 修改安全组ElasticMapReduce-...
  2. 编辑端口22的源IP
  3. 这是不正确的
  4. 更新到您的源IP或任何地方。