为什么我无法使用 SSH 连接到我的 AWS Glue 开发终端节点?

1 分钟阅读
0

我无法使用 SHH 连接到我的 AWS Glue 开发终端节点。 -或者- 我无法使用 SSH 端口转发连接到我的 AWS Glue 开发终端节点。

解决方法

使用 SSH 连接到开发终端节点

  • 确保您已更改开发终端节点中密钥对文件的权限。通过运行以下命令确认只有您可以查看文件:
$ chmod 400 my-key-pair.pem
  • 请确认以下事项:
  • 您的私有秘钥路径正确无误。
  • 私有扩展名为 .pem 并用双引号括起来。
  • 务必使用 Telnet 或 Netcat 等工具检查端口 22 上与开发终端节点的网络连接性。
  • 确保您的安全组允许端口 22 上来自 IP 地址的流量。检查出站流量的规则是否正确。出站流量的规则必须确认出站流量对所有端口开放。或者,该规则必须是具有以下参数的自引用规则:类型所有 TCP协议TCP端口范围全部,以及具有相同安全组名称的来源组 ID。有关更多信息,请参阅针对开发终端节点设置您的网络
  • 请确保在用于 AWS Glue 开发终端节点的虚拟私有云 (VPC) 中启用了**编辑 DNS 主机名**设置。此外,请确认 Amazon Simple Storage Service (Amazon S3) 终端节点已连接到用于开发终端节点的 VPC 子网。
  • 如果使用 PuTTY 作为 SSH 客户端,则使用 PuTTYgen 工具将私有 .pem 文件转换为 .ppk 文件。

使用 SSH 端口转发连接到开发终端节点

SSH 端口转发需要公有 DNS 地址才能连接到开发终端节点。要向开发终端节点添加公有 DNS 地址,请执行以下操作:

1.    使用 VPC 创建开发终端节点

2.    在 AWS Glue 控制台中,选择开发终端节点。请注意开发终端节点的私有地址。您会在下一步中会用到此地址。

3.    打开 Amazon Elastic Compute Cloud (Amazon EC2) 控制台,然后从导航窗格中选择网路和安全。接下来,选择网络接口。在网络接口页面中,搜索与开发终端节点上的私有地址字段对应的私有 IPv4 DNS 地址。

4.    按照以下说明分配弹性 IP 地址将该地址与弹性网络接口关联:
对于资源类型,请选择网络接口
对于网络接口,选择您在上一步中记录的弹性网络接口。
验证私有 IP 地址字段中的地址与终端节点的 IP 地址相同。

5.    要验证设置,请使用类似于以下的命令检查是否可以使用 SSH 连接到开发终端节点:

ssh -i dev-endpoint-private-key.pem glue@elastic-ip

6.    如果可以使用此命令成功连接,那么在实际命令中使用相同的弹性 IP 地址:

ssh -i private-key-file-path -NTL 9007:169.254.76.1:9007 glue@elastic_ip

有关更多信息,请参阅访问开发终端节点

**注意:**如果您尝试将 Jupyter 笔记本连接到开发终端节点,但无法创建端口转发隧道,请在 ssh 命令中检查该端口。确保命令中使用的端口是 8998 而非 9007

有关更多信息,请参阅 教程:在 JupyterLab 中设置 Jupyter 笔记本以测试和调试 ETL 脚本


相关信息

管理开发终端节点

AWS 官方
AWS 官方已更新 3 年前