Domain-Name-System
按名稱訪問云機器
我在Google云和亞馬遜上有生產機器。在這兩種雲上,我在每個名為監控的公共伺服器上都有公共 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
文件就是您的朋友。$ 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
使用每個實例的正確使用者名登錄到任一實例,而無需記住要使用的身份密鑰。