我必须定期从本地计算机访问许多 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
那么这将解决有关多个密钥文件的问题(所有密钥都针对您尝试登录的主机进行尝试)。