我在 中设置了主机名别名.ssh/config
,效果很好:
Host my-web
HostName 515.346.96.21
所以我可以这样做:
ssh my-web
但在浏览器中,我仍然需要输入“ http://515.346.96.21
”。如果能够输入“ http://my-web
”,那就太好了。
除了使用动态 DNS 或编写脚本来同步更改之外/etc/hosts
,有没有办法更广泛地使用 SSH 中的别名?我经常使用不同的 IP 创建和销毁虚拟机,因此经常更新~/.ssh/config
。
答案1
您不能在其他地方重复使用 ~/.ssh/config 中的 HostName 别名。您可以做的是使用主机条目更新 /etc/hosts 文件,例如
515.346.96.21 myweb
答案2
经过进一步思考,这似乎是可行的方法:
在/etc/hosts
:
192.168.0.27 my-server
在~/.ssh/config
:
Host my-server
IdentityFile ~/foo.pem
User ubuntu
您仍然需要编辑两个文件,但至少您没有重复任何信息。如果 IP 发生变化,则更新 /etc/hosts。如果密钥或用户发生变化,则更新 .ssh/config。此外,主机名通配符仍然有效:
/etc/hosts
:
company-server1: 192.168.0.44
company-server2: 192.168.0.45
company-server3: 192.168.0.46
~/.ssh/config
:
Host company-*
IdentityFile ~/foo.pem
User ubuntu
答案3
你可以忘记在任何地方设置别名,如果你使用类似的东西阿瓦希。这可让您的工作站和服务器(甚至是虚拟的,如果您桥接了虚拟网络)相互找到并通过名称相互寻址。