如何在不指定 .pem 文件的情况下通过 ssh 连接到 EC2?

如何在不指定 .pem 文件的情况下通过 ssh 连接到 EC2?

肯定存在一些比记录的更简单的方法ssh -i my.pem user@ip-addr,通过将 pem 文件放入并根据~/.sshssh 知道使用,但我不知道如何操作。my.pemuser@ip-addr

答案1

此解决方案来自 StackOverflow 帖子
无需指定 .pem 文件即可连接到 Amazon ec2 实例

  • 将文件复制.pem~/.ssh

  • 在以下位置创建配置文件~/.ssh

    touch ~/.ssh/config
    
  • 在 nano 或 vim 中打开配置文件:nano ~/.ssh/config

  • 将以下行添加到config文件

    Host host_name
        HostName ec2.server.address.com
        User ec2-user
        IdentityFile "~/.ssh/ec2.pem"
    
  • 现在从终端连接:ssh host_name

答案2

大多数命令行选项都可以通过 来指定~/.ssh/config,无论是全局的还是针对单个主机的。 的等价物-iIdentityFile选项。

如果此密钥文件仅有的用于 EC2,最好在仅与 EC2 匹配的部分中指定这一点。例如,如果您通常按名称进行 SSH(例如ssh ec2-198-x.compute-1.amazonaws.com),则此格式将有效:

Host *.amazonaws.com
    IdentityFile ~/.ssh/myec2.pem

(最具体的部分应该放在顶部;全局Host *部分应该放在文件的最底部。)


除此之外,OpenSSH 还会查看几个固定位置,例如~/.ssh/id_rsa,用于存放私钥文件。您可以将密钥放在那里,但最好将此文件名保留为您的“主”密钥,以及您自己生成的密钥,而不是从 AWS 收到的密钥。

相关内容