如何使用不同的.pem 文件从 ubuntu 管理大量 EC2 实例的 SSH 连接信息

如何使用不同的.pem 文件从 ubuntu 管理大量 EC2 实例的 SSH 连接信息

我必须定期从本地计算机访问许多 AWS EC2 实例。它们的 IP 地址未映射到任何域,因此我需要使用以下命令登录它们:

ssh -i keyfile.pem ec2-user@<ip address of the instance>

有超过 10 个 EC2 实例,有些实例具有相同的密钥文件,有些则不同。问题是我不记得它们的 IP 地址,每次我都必须在 AWS 控制台上查找它们,然后复制粘贴它们的 IP 地址。有什么方法可以加快这个过程,方法是在本地存储这些实例的一些别名并使用一些 GUI 工具访问它们?我不想使用 PUTTY,因为我喜欢 Ubuntu shell。

答案1

您可以通过指定主机名、用户名、端口和私钥来尝试使用快捷方式。请参阅官方文档

Host MyInstance1
Host example.com or ipaddress
User ubuntu
IdentityFile /path/to/privatekey/MyInstance1.pem

允许:

chmod 600 ~/.ssh/config

然后尝试通过

ssh  MyInstance1

您也可以尝试使用别名:

文件:

vi vim ~/.bash_aliases

然后

alias MyInstance1='ssh [email protected] -i /path/to/private-key/MyInstance1.pem'

答案2

SSH 配置非常适合这种情况,但是,在重新部署新实例时,IP 将发生变化,您的 ssh 配置将变得陈旧。我编写了一个工具,可以从 AWS 中提取最新的 EC2 清单,并将其 ssh 到与您的搜索相匹配的系统中:https://github.com/wagoodman/bridgy

bridgy ssh <some-instance-id>

或者,如果您向每个实例添加一个名为的标签Name,那么您也可以使用它:

bridgy ssh <some-name-tag-value>

如果您已~/.aws定义 creds/config,则可以使用aws-cli以下定义~/.bridgy/config.yml

inventory:
    source: aws
    update_at_start: true
ssh:
    user: <your ssh user>
...

那它就应该可以工作了!

最后一件事:如果您将所有 SSH 密钥添加到,ssh-agent那么这将解决有关多个密钥文件的问题(所有密钥都针对您尝试登录的主机进行尝试)。

相关内容