我在谷歌云和亚马逊上有生产机器。在这两种云上,我在每个名为监控的公共服务器上都有公共 IP。通过这些监控机器,我可以访问各个云上的所有机器。但是,问题是我必须像访问它们一样访问它们,ssh -i abc.pem user@<ip address>
而我希望像访问它们一样访问它们ssh -i abc.pem user@<machine name>
如何实现这一点?
我在谷歌云和亚马逊上有生产机器。在这两种云上,我在每个名为监控的公共服务器上都有公共 IP。通过这些监控机器,我可以访问各个云上的所有机器。但是,问题是我必须像访问它们一样访问它们,ssh -i abc.pem user@<ip address>
而我希望像访问它们一样访问它们ssh -i abc.pem user@<machine name>
如何实现这一点?
域名系统。
易于插入您组织的 DNS
monitoring.gcp.example.net
和monitoring.aws.example.net
如果您的解决方案必须扩展到一群都需要方便地访问您的云实例的人,@JohnMahowald 的答案是正确的。
但是,如果只有您,并且/或者您无法让您的 DNS 管理员配合您的请求,那么您可以探索其他途径。
如果您只需要方便的 ssh 访问,那么您的
~/.ssh/config
文件就是您的朋友。在您的
~/.ssh/config
文件中使用该节,当您发出命令时:ssh
将使用给定的 IP 地址ip.addr.of.machine
和远程用户名remote_username
连接到该主机。您的
/etc/hosts
文件也可以代替实际的 DNS 条目,例如,如果您要查询的地址有网页或 SNMP 代理。但同样,这可能只有在极少数人需要方便访问时才有效。.ssh/config
如果您只需要 ssh 访问,该解决方案是高度可配置的。即使您的主机确实有一个 DNS 条目,您仍然可以在该行中使用更短、更易于键入的昵称Host
,并将 DNS 名称放在该Hostname
行中。使用这些
config
条目,您可以:或者
使用每个实例的正确用户名登录到任一实例,而无需记住要使用的身份密钥。