kyo*_*kyo 2 ssh amazon-ec2 amazon-web-services
我拥有 AWS 控制台的管理员访问权限,并且可以查看 EC2 实例、启动/停止等。但我无法通过 SSH 连接到 EC2。我不确定 .pem 密钥是否错误。
\n我必须选择什么才能进入?
\n我可以在 Linode 或 Digital Ocean 中重置 root 密码,并通过远程 SSH 输入。\n但我在 AWS 上没有这些选项。
\n我已经尝试过这个并且它挂起。前任。我的虚拟机 IP = 1.1.1.1
\xe2\x9e\x9c ~ ssh -i ~/.ssh/app.pem ubuntu@1.1.1.1 -v\nOpenSSH_8.1p1, LibreSSL 2.7.3\ndebug1: Reading configuration data /Users/alpha/.ssh/config\ndebug1: Reading configuration data /etc/ssh/ssh_config\ndebug1: /etc/ssh/ssh_config line 47: Applying options for *\ndebug1: Connecting to 1.1.1.1 [1.1.1.1] port 22.\n^C\n\xe2\x9e\x9c ~\nRun Code Online (Sandbox Code Playgroud)\n我怎样才能进一步调试这个?如何获得 SSH 访问权限?
\n我应该怎么办?
\n您应该逐步完成所需的所有连接元素,以便创建与 AWS 的 SSH 连接。
首先,确保您的本地网络允许连接。大多数家庭路由器允许出站到任何端口,但如果您使用工作网络,它们可能会过滤端口 22(SSH 的默认端口)。您可能需要确保防火墙不会丢弃对计算机的出站请求。
接下来,您需要确保 NACL 不会造成问题。您的 EC2 实例所在的 VPC 子网具有 NACL。默认情况下,它们不过滤任何内容。但是,您应该确保没有过滤入站端口 22 TCP 或出站临时端口(端口 1024->65535)。需要这些临时端口,因为返回端口(您这边)在该端口范围内将是动态和随机的。
您需要确保您的实例附加了一个安全组,并且它允许端口 22 TCP (SSH) 入站。这很重要,因为默认情况下,它不会允许任何入站端口。如果您需要创建安全组,可以在EC2服务页面上进行创建。至少在您的 IP 上创建一个允许 SSH、TCP 入站的新 IP(如果您的 IP 为 2.3.4.5,则应在地址字段中输入 2.3.4.5/32)。然后将其附加到您的实例。附件应该是即时的(无需重新启动)。警告:如果您没有适当保护的实例,允许所有 IP (0.0.0.0/0) 可能会很危险,因为它将允许所有 IP 能够尝试通过该端口进行连接。与 NACL 不同,安全组是有状态的,因此无需列出安全组中的临时端口。
我假设您正在使用“正常”的 AMI 进行启动,但如果这以前有效但现在无效,您应该考虑是否在操作系统级别使用防火墙将自己锁定在外。如果您以某种方式在操作系统级别设置规则来拒绝端口 22,或者 sshd 未运行,那么您将会因明显的原因而遇到问题。这里的修复会很复杂,但如果你这样做的话,这是可能的。
您已经意识到您需要确保拥有正确的密钥对。通过查看 EC2 页面上的实例数据来验证您使用的密钥对并使用该密钥登录。确保您为您的发行版使用正确的默认用户名(它们可能因类型而异 - 通常是“ec2-user”,但例如 centos 是用户“centos”。YMMV,所以请查找它!)
如果您仍然遇到问题,您可以随时在包含您的实例的 VPC 上启用 VPC 流日志。这将为流入和流出 VPC 的每个数据包创建一个日志条目,以便您至少可以查看流量是否正在到达 VPC,如果是,则流量是否被拒绝或转发到实例。
| 归档时间: |
|
| 查看次数: |
5173 次 |
| 最近记录: |