我总是不得不输入很多内容。我只想缩短主机名,而不是别名。我尝试编辑主机文件以将其包含在底部,但当我尝试以 身份连接时它无法解析。有人能告诉我为什么吗?ssh [email protected]
shorthost somereallylonghost.numb3r5.ojd202nk.net
ssh myusername@shorthost
答案1
使用 ssh 配置文件。文件路径为~/.ssh/config
。
示例配置:
Host shorthost
User myusername
HostName somereallylonghost.numb3r5.ojd202nk.net
然后你就可以运行了ssh shorthost
。
答案2
请接受@ggustafsson 的解决方案。但是既然你问为什么/etc/hosts
不起作用,而他没有讲到这一点,我想我应该讲一下:
/etc/hosts
用于将一个或多个主机名映射到 IP 地址。它不用于将一个名称映射到另一个名称。由于它不是为执行您要查找的操作而设计的,因此它不提供执行您想要的操作的语法。您编写的语法对于读取的进程来说是无意义/无效的/etc/hosts
,该进程期望每行都以数字 IP 地址开头。
答案3
如果您唯一关心的是ssh
,您应该接受 ggustafsson 的答案。但是,如果您还需要它来执行其他 IP 任务(例如 ftp、ping 等),并且相关主机具有固定 IP(例如,123.123.123.123),则可以像这样添加一行/etc/hosts
:
123.123.123.123 shorthost
(您也可以选择在末尾添加 somereallylonghost,这样无论 DNS 服务器是否可用,都可以解析该地址)。但请记住,只要 verylonghostnametoreplaceinthiscase 的 IP 发生变化,您就必须更新该行 —— 而使用 ssh 配置方法则不需要这样做。