通过同一子网 AWS 中的 public 个实例在子网中使用 ssh 私有实例

ssh private instance in a subnet through public instance in same subnet AWS

我是 AWS 新手。 我创建了一个 VPC 并创建了 2 个子网(1 个私有子网和 1 个 public)。启用互联网网关并使用互联网网关条目更新路由 table。

然后为私有子网和 public 子网以及相应的相关安全组创建了 2 个 Linux EC2 实例,即 public 实例(SSH 和 HTTP)和私有(SSH, HTTP、ICMP、HTTPS) 入站规则。

我正在使用 putty 作为 windows 用户使用 mypkv.ppk ssh 进入我的 public 实例并成功登录。我成功地能够使用

从这个 public 实例 ping 私有实例
command: ping private-ip-address

但是我不知道如何通过这个 public 实例 ssh 进入这个私有实例?我尝试了以下命令:

ssh ec2-user@private-ip-address -i mypvk.pem  
ssh ec2-user@private-ip-address -i mypvk.ppk

其中 mypvk.pem 和 mypvk.ppk 是存储在我的 public 实例上的文件,它们是创建 EC2 实例时给我的 AWS 的私钥。

上面的命令说:

Enter passphrase for key 'mypvk.pem': 
Enter passphrase for key 'mypvk.ppk': 

我不知道密码短语或那是什么意思以及如何通过 ssh 进入私有实例? 任何帮助将不胜感激。

密码只是获取系统访问权限的另一个密码,如果您尝试将 pem 转换为 ppk,那么您会在 putty 中看到它...因为您不知道什么是密码,我可以假设您没有输入密钥的密码

ssh ec2-user@private-ip-address -i mypvk.pem ;使用这个而不是第二个命令中的 ppk 文件,你能得到更多关于这个的日志吗?可能是冗长的

ssh ec2-user@private-ip-address -i mypvk.pem -vv ,

可能您尝试设置 public 密钥,但最后设置了密码

假设 public 和私有实例都是使用相同的密钥启动的,为了从 public 实例获得对私有实例的访问权限,您需要使用 putty 启用密钥转发。

关于如何在 superuser 上执行此操作有一个很好的答案,但基本上它涉及 运行 代理 (pageant.exe) 并添加适当的密钥。

  1. 在您的 Putty 中启用代理转发。 Under “Connection” -> “SSH” -> “Auth”.
  2. 登录到 Public 实例并执行 ssh ec2-user@private-ip-address

Image Source

将 pem 文件复制到 public 子网中的实例,尝试连接到您的私有实例。确保文件 pem 的内容没有错误,甚至是一个字符。