同一子网内的 AWS EC2 SSH <private_ip_address>

Posted

技术标签:

【中文标题】同一子网内的 AWS EC2 SSH <private_ip_address>【英文标题】:AWS EC2 SSH <private_ip_address> inside same subnet 【发布时间】:2017-11-17 06:16:26 【问题描述】:

我有一个实例 A (public_ip_A) 和一个实例 B (public_ip_B) 都在同一个子网中,并且安全组对 ssh 开放。而且我能够

ssh -i pem_file user@public_ip_A/B

现在登录到实例 A 后,我喜欢使用私有 ip 在没有 pem 文件的情况下 ssh 到实例 B。

我查看了几个文档以将密钥添加到 ~/.ssh/authorized_key 但不清楚以获得确切的理解。关于如何使用私有 ip 实现ssh 的任何线索?

Unable to ssh EC2 instances in same subnet 没有帮助。

【问题讨论】:

SO 是针对编程问题,而不是关于使用或配置 Linux 的问题。 SuperUser.com、unix.stackexchange.com 或 ServerFault.com 将是解决此类问题的更好场所。 如果人们有兴趣为这些类型的问题创建一个场所,请按照dedicated Cloud Computing site on StackExchange 的提议并投票一些示例问题。 Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Web Applications Stack Exchange、Webmaster Stack Exchange 或Unix & Linux Stack Exchange 会是一个更好的提问地点。 好的。谢谢你告诉我 【参考方案1】:

它与私有 IP 或子网无关。你需要的是ssh-agent。 ssh-agent 是一个保存用于公钥认证的私钥的程序。

运行 ssh-agent 后,使用 ssh-add 添加您的私钥

将对应的公钥放在两台机器上的~/.ssh/authorized_keys,然后你可以在不提供私钥的情况下ssh

如果您需要分步说明,请关注Using an ssh-agent, or how to type your ssh password once, safely。

【讨论】:

【参考方案2】:

如果您在同一个 VPC 中有两个实例并且您希望在它们之间进行 SSH,您应该通过它们的私有 IP 地址进行连接。这意味着流量完全保留在 VPC 和实例中,它可以在公共子网和私有子网之间运行(而公共 IP 地址仅适用于公共子网中的实例)。

通过他们的公共 IP 地址意味着流量离开 VPC,但随后又被路由回。此类流量需要 1c/GB 费用。定价页面将此称为连接“使用公共或弹性 IPv4 地址”的 Amazon EC2 实例。

关于安全性,~/.ssh/authorized_keys 定义了允许哪些密钥登录用户(其主目录具有该文件)。连接时您仍然需要提供密钥,但这可以根据@helloV 的回答自动完成。

【讨论】:

以上是关于同一子网内的 AWS EC2 SSH <private_ip_address>的主要内容,如果未能解决你的问题,请参考以下文章

AWS 如何从私有子网中的 EC2 实例打开网站

通过 Ubuntu 堡垒到私有子网中的 EC2 实例的 SSH 隧道

同一区域内的 AWS 数据传输成本,但属于不同的账户?

带有 aws SSM 的 SSH 隧道

无法通过 AWS Session Manager 工作获得 SSH 连接

AWS:如何将 *** 客户端连接到 RDS(*** 服务器 EC2 和 RDS 在同一个 VPC 中)