【问题标题】:Providing proxy to ssh command or putty via cmd in Windows [closed]在 Windows 中通过 cmd 为 ssh 命令或 putty 提供代理 [关闭]
【发布时间】:2020-10-19 06:45:29
【问题描述】:

我想在 Windows 中通过命令行建立一个提供代理的 SSH 连接。当我将 ssh 命令与 ssh -o "ProxyCommand proxytunnel.exe ..." 一起使用时,它给了我一个类似

的错误

CreateProcessW 失败错误:2 posix_spawn: 没有这样的文件或目录

我也尝试使用 putty.exe 命令行 -proxycmd="proxytunnel.exe .." 但这也会出错。

任何推荐的方式来建立通过 CMD 提供代理的 SSH 连接?

提前致谢!

【问题讨论】:

  • proxytunnel.exe 未找到。使用完整的限定文件名指定此可执行文件,这意味着如果文件路径包含空格或这些字符之一&()[]{}^=;!'+,`~,则用双引号括起来的驱动器 + 路径 + 名称 + 扩展名。最好在文件名周围始终使用",因为这永远不会出错。
  • 谢谢@Mofi, ssh -o "ProxyCommand proxytunnel.exe ..." 现在正在为我使用完整路径。

标签: ssh cmd proxy putty


【解决方案1】:

在普通系统上的语法是(但不是在 windows 上):

ssh user@myHost -p 4711 -oProxyCommand="ssh jumphost -W %h:%p"

或使用代理隧道

ssh user@myHost -p 4711 -oProxyCommand="proxytunnnel.exe args"

@MartinPrikryl 的评论让我想起了另一个问题。
CreateProcessW failed error:2 posix_spawn: No such file or directory 消息是典型的 Windows 10 系统,因为 ssh 甚至无法在 ProxyCommand 选项中找到 ssh.exe 本身。

您总是需要在 Windows 上指定完整路径,即使 .exe 也是必需的。

ssh user@myHost -p 4711 -oProxyCommand="C:\Windows\System32\OpenSSH\ssh.exe jumphost -W %h:%p"

可以在 .ssh/config 文件中使用完整路径(最好使用正斜杠),但会导致更多问题,当您使用 git-bash 时,ssh-agent 会定期中断。

或者更好地避免使用 Windows 中的 OpenSSH 并始终使用 git-bash 中的 ssh,因为这样效果更好,并且与 ssh-agent(来自 git-bash 的 ssh-agent)一起使用也很可靠。 然后甚至可以通过 jumphost 使用 vscode 而不会让人头疼。

【讨论】:

  • @MartinPrikryl 你是对的,我进行了编辑
猜你喜欢
  • 2016-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-25
  • 1970-01-01
  • 2017-08-17
相关资源
最近更新 更多