我无法使用 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 脚本。
相关信息
管理开发终端节点