我想在我的笔记本电脑 (Linux) 上设置一个别名服务器名称。我不是想要使用该/etc/hosts/
文件由于远程服务器的 IP 地址发生变化。我要这样做的原因是服务器名称长度为 27 个字符。我想这样做:
ssh server
代替:
ssh server.subdomain.domain.com
我使用多个子域名。如何设置?
PS:我不认为这是一个重复,因为其他类似的答案并没有解决IP地址会改变的事实。
答案1
使用文件~/.ssh/config
示例内容:
Host jane
HostName long.server.name
User root
ssh jane
然后你可以使用ssh [email protected]
如果 IP 地址发生变化,而您不知道该服务器的 revDNS,您可以尝试使用命令host 1.0.0.1
,其中 1.0.0.1 是 IP 地址 - 这将为您提供您可以配置的当前 revDNS 名称。
如果主机名(反向 DNS)随着 IP 变化而变化或者您的服务器位于 NAT 后面 - 您可以使用动态 DNS(dyndns.org)和/或使用端口转发。
答案2
为了使用更短的“ssh server”而不是“ssh server.subdomain.domain.com”,您只需将“subdomain.domain.com”附加到 /etc/resolv.conf 中的搜索字段即可。如果没有搜索字段,您可以创建一个。
例如 - 假设您的 /etc/resolv.conf 如下所示:
搜索 domain1.com domain2.com domain3.com 名称服务器 1.2.3.4 名称服务器 5.6.7.8
修改搜索行使其看起来像这样:
搜索 domain1.com domain2.com domain3.com subdomain.domain.com
如果您希望首先搜索 subdomain.domain.com,则可以将其放在此列表的前面。
答案3
如果这仅适用于 ssh,您可以在~/.ssh/config
完成后,ssh server
每次都会假设 fqdn 解析为 ip 地址。
有关详细信息,请参阅http://kb.mediatemple.net/questions/1625/使用+an+SSH+Config+File或 ssh_config 的手册页。
答案4
.bashrc
您可以在或中添加别名.zshrc
:
alias server1='ssh server1'
~/.ssh/config
例如,在您的服务器中添加 server1 :
Host server1
Hostname address
User username-on-this-server