Domain-Name-System

按名稱訪問云機器

  • November 14, 2019

我在Google云和亞馬遜上有生產機器。在這兩種雲上,我在每個名為監控的公共伺服器上都有公共 IP。通過這些監控機器,我可以訪問各個雲上的所有機器。但是,問題是我必須像訪問它們一樣訪問它們,ssh -i abc.pem user@<ip address> 而我希望像訪問它們一樣訪問它們ssh -i abc.pem user@<machine name> 如何實現這一點?

域名系統。

易於插入您組織的 DNSmonitoring.gcp.example.netmonitoring.aws.example.net

如果您的解決方案必須擴展到一群都需要方便地訪問您的雲實例的人,@JohnMahowald 的答案是正確的。

但是,如果只有您,並且/或者您無法讓您的 DNS 管理員配合您的請求,那麼您可以探索其他途徑。

如果您只需要方便的 ssh 訪問,那麼您的~/.ssh/config文件就是您的朋友。

$ cat << EOF >> ~/.ssh/config
Host machine_name
 Hostname ip.addr.of.machine
 User remote_username
 IdentityFile ~/.ssh/abc.pem

EOF

在您的~/.ssh/config文件中使用該節,當您發出命令時:

$ ssh machine_name

ssh將使用給定的 IP 地址ip.addr.of.machine和遠端使用者名remote_username連接到該主機。

您的/etc/hosts文件也可以代替實際的 DNS 條目,例如,如果您要查詢的地址有網頁或 SNMP 代理。但同樣,這可能只有在極少數人需要方便訪問時才有效。

.ssh/config如果您只需要 ssh 訪問,該解決方案是高度可配置的。即使您的主機確實有一個 DNS 條目,您仍然可以在該行中使用更短、更易於鍵入的暱稱Host,並將 DNS 名稱放在該Hostname行中。

Host gcp
   Hostname monitoring.gcp.example.net
   User gcp_username
   IdentityFile ~/.ssh/abc.pem

Host aws
   Hostname monitoring.aws.example.net
   User aws_username
   IdentityFile ~/.ssh/abc.pem

使用這些config條目,您可以:

$ ssh gcp

或者

$ ssh aws

使用每個實例的正確使用者名登錄到任一實例,而無需記住要使用的身份密鑰。

引用自:https://serverfault.com/questions/991615