肯定存在一些比记录的更简单的方法ssh -i my.pem user@ip-addr
,通过将 pem 文件放入并根据~/.ssh
ssh 知道使用,但我不知道如何操作。my.pem
user@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
,无论是全局的还是针对单个主机的。 的等价物-i
是IdentityFile
选项。
如果此密钥文件仅有的用于 EC2,最好在仅与 EC2 匹配的部分中指定这一点。例如,如果您通常按名称进行 SSH(例如ssh ec2-198-x.compute-1.amazonaws.com
),则此格式将有效:
Host *.amazonaws.com
IdentityFile ~/.ssh/myec2.pem
(最具体的部分应该放在顶部;全局Host *
部分应该放在文件的最底部。)
除此之外,OpenSSH 还会查看几个固定位置,例如~/.ssh/id_rsa
,用于存放私钥文件。您可以将密钥放在那里,但最好将此文件名保留为您的“主”密钥,以及您自己生成的密钥,而不是从 AWS 收到的密钥。