ssh 不使用配置中新添加的服务器名称

ssh 不使用配置中新添加的服务器名称

我有一个如下所示的 ssh 配置文件:

Host my.host.com
    HostName my.host.com
    User michael
    Port 1234

如果我在命令行输入“ssh my.host.com”,它会使用正确的用户名和非标准端口正确连接到“my.host.com”。

主机的实际名称需要输入相当多的内容,因此我想到可以通过创建一个缩写名称的主机来节省大量的输入,因此我复制了上述工作部分并创建了一个较短的主机名:

Host m
    HostName my.host.com
    User michael
    Port 1234

但是当我尝试连接时,出现错误:

ssh: Could not resolve hostname m: Name or service not known

我尝试过-v并且没有得到有用的信息:

OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014 debug1: Reading configuration
data /root/.ssh/config debug1: Reading configuration data
/etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: Applying
options for * ssh: Could not resolve hostname m: Name or service not
known

我尝试添加更多-vs 来查看是否会提供更详细的输出,但没有显示其他信息。

我尝试使用-v为其他主机设置的另一个别名运行,得到以下结果:

OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /root/.ssh/config
debug1: /root/.ssh/config line 11: Applying options for z

因此,似乎无论出于什么原因,ssh 都会忽略主机“m”的选项,但不会忽略主机“z”的选项。主机之间唯一可能相关的区别是“z”位于 Internet 的其他地方,而“m”位于 LAN 上,这是怎么回事?

我的第一个想法是也许我必须重新启动某些东西才能使更改生效,但这是 ssh,而不是 sshd。

答案1

问题解决了——正如我们在问题下的评论中所讨论的那样,m别名根本不起作用的原因是编辑的文件和ssh 命令实际使用的文件不一致。

编辑:具体来说,请确保您使用的是当前用户拥有的 .ssh 目录下的配置文件。如果您将 HOME 设置为其他值,则编辑的~/.ssh/config文件将是错误的。

相关内容