![ssh 在配置中不使用服务器名称](https://linux22.com/image/1469290/ssh%20%E5%9C%A8%E9%85%8D%E7%BD%AE%E4%B8%AD%E4%B8%8D%E4%BD%BF%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%8D%E7%A7%B0.png)
我尝试通过命令配置连接到远程 ssh 服务器ssh <server short name>
。我将其输入~/.ssh/config
:
Host <server short name> <server full name>
Host <server full name>
User <my username on the remote server>
Port 22022
ForwardAgent yes
ForwardX11 yes
我可以使用连接
$ ssh <server full name>
但命令失败
$ ssh <server short name>
ssh: Could not resolve hostname <server short name>: Name or service not known
我检查了几次拼写,没有发现错误。知道为什么第二个命令失败了吗?
答案1
Host
不是 SSH 选项;它总是开始一个新部分,无论缩进级别如何。因此,您有两个配置部分;一个空的部分匹配<shortname> <fullname>
,另一个匹配<fullname>
。
相反,第二行需要是HostName <fullname>
。
答案2
查看手册页
该host
关键字用于将配置组合在一起,也可用于定义主机的别名或一次配置多个主机。
考虑以下场景:在工作中,您有两个服务器,分别称为 dev.example.com 和 test.example.com,您在其中使用相同的密钥对,并使用第二个密钥对的 github 帐户。然后,您可以设置以下配置
host *.example.com
identityfile ~/.ssh/work-key
user bob
Port 22022
ForwardAgent yes
ForwardX11 yes
host github.com
identityfile ~/.ssh/github-key
host dev
hostname dev.example.com
host test
hostname test.example.com
并使用类似这样的方法进行连接:
ssh dev