免责声明:最初我在 StackOverflow 上问了这个问题,它被合理地标记为偏离主题,并且认为它更适合放在这里。与此同时,我发现了问题(请参阅下面的中间解决方案)。
原来的问题
我使用的是 Windows 客户端,想要通过 SSH 连接到 Ubuntu 客户端。
我的配置(正在运行)如下所示:
Host myhost
ForwardAgent Yes
Host myuser@myhost
HostName myhost
User myuser
我可以连接,转发按预期工作,以便ssh-add -l
在远程显示我的连接客户端的身份。
现在,我不明白的是,为什么以下配置不起作用:
Host myuser@myhost
ForwardAgent Yes
HostName myhost
User myuser
这样的话我至少可以通过SSH连接,但是转发不起作用,因此ssh-add -l
再次运行返回:
无法打开与您的身份验证代理的连接。
对我来说,第二种配置看起来基本相同,但一步而不是两步。
我在这里缺少什么?
我尝试过的
我得到的一个建议是用@
另一个标志替换该标志。不幸的是,它不起作用。
然后我做了一些小的更改,yes
例如小写。没有改变。
中间溶液
在真正尝试尝试和错误风格之后。我发现第一种Host
命名方式还可以:
Host myhost
HostName myhost
User myuser
ForwardAgent yes
事实证明,我可以改变Host
原来的样子,但User
我不能包含来自?的名字。事实证明这是一种模式。
问题
- 有人明白为什么
User
不允许吗? - 当我想包含另一个规范但与另一个用户一起时,最佳实践是什么?我的第一个配置遵循了这个意图,请参阅:
Host user1@myhost
HostName myhost
User user1
ForwardAgent yes
Host user2@myhost
HostName myhost
User user2
ForwardAgent yes
这是行不通的。
也不起作用:
Host myuser-myhost
HostName myhost
User myuser
ForwardAgent yes
或者
Host myhost-myuser
HostName myhost
User myuser
ForwardAgent yes
或者
Host myhostmyuser
HostName myhost
User myuser
ForwardAgent yes
Host myusermyhost
HostName myhost
User myuser
ForwardAgent yes
甚至不
Host mymyuserhost
HostName myhost
User myuser
ForwardAgent yes
真的很困惑。那么如何区分两个不同用户的两种配置呢?仅通过拥有两个不同的文件?