需要帮助在cygwin中configurationssh

我有~/.ssh/config这个~/.ssh/config

 Host *.myhost.com User awwuser IdentityFile my-keys/myhost/id_dsa 

事情是,我有不同的主机2个不同的私人密钥,我也有2个不同的用户的主机,所以我不想写下来,每次通过SSH选项。 正如我发现的,我可以创build一个configuration文件,它会自动设置用户名和私钥使用。

据我所知,我做的一切正确。

但是这个configuration似乎并没有工作。 当我做的ssh subdomain.myhost.com它试图连接到它使用当前的用户名,而不是在config中指定的。 当我通过ssh选项指定用户名时,它看不到正确的标识文件。 所以我的configuration似乎没有工作。

请指教。

PS我正在使用打开的SSH 6.0

首先您可能会记住,您的SSHconfiguration选项是从上到下读入的。

根据您的设置,您的configuration设置默认值也可能有全局部分。 有点像这样。

 Host * ForwardAgent yes ForwardX11 yes ForwardX11Trusted yes Protocol 2 AddressFamily inet SendEnv LANG LC_* HashKnownHosts no GSSAPIAuthentication no 

如果该部分位于您的部分之前,则将使用*部分中的设置。 一般来说,你想要从最具体的设置到最不具体的命令你的SSHconfiguration文件。

所以像这样的东西。

  host fully.qualitified.tld ... host *.example.com ... host * 

您还必须记住,名称匹配与您在命令行上键入的确切名称相匹配。 它不会考虑DNSsearch,因为您的searchpath中有myhost.com。

因此,如果您运行命令ssh foo ,并且恰好有DNS设置,它会将fooparsing为foo.example.com,那么SSH客户端将不会使用来自host foo.example.com任何设置。 你可以通过在你的configuration文件中添加多个别名来让你的生活更轻松,比如这个host foo.example.com foo.example foo

既然你提到你有多个键。 请记住,在客户机上启动SSH代理并添加所有密钥可能会更好。 然后让SSH协商自动使用哪个密钥。 您也可以在host *部分有多个IdentityFile选项。 SSH将一次只尝试一个。

感谢您的关注。 我发现这个问题,这是一个错误的域名,我的IdentityFilepath不是绝对的。 设置正确的主机名和完整path后,一切开始工作。