以下有什么区别?
Host foo
ProxyCommand ssh example.com -- /usr/bin/nc %h %p 2> /dev/null
和
Host foo
ProxyCommand ssh -W %h:%p example.com
什么时候我应该选择哪一个?它们中的任何一个在某种程度上更快或更有效吗?
答案1
这两个设置执行相同的操作。选项-W
是2010年添加并被描述为“netcat 模式”。
ssh -W
如果您不需要与 4.7 之前的 OpenBSD 版本或 5.5 之前的便携式 OpenSSH 兼容,请使用(我认为)。nc
如果您确实需要支持旧版本的 OpenSSH,请使用。ssh -W
如果可用,则更可取,因为它的效率稍高,并且不需要安装单独的实用程序。
答案2
直接使用 ssh 总是会稍微快一些,因为您没有调用外部 nc 二进制文件,并且应该首选它,因为不能保证 nc 存在于目标系统上。