为什么 ssh 总是不起作用?

为什么 ssh 总是不起作用?

下面两个命令在我使用命令提示符时有效,但在 mobaxterm 中无效。为什么?

ssh -L 16006:127.0.0.1:6006 [email protected]

在命令提示符和 mobaxterm 中有效,但是

ssh -L 16006:127.0.0.1:6006 [email protected]

仅在 mobaxterm 中不起作用。它给我消息

_ssh:无法解析主机名 10.2.25:名称或服务未知

答案1

这是不一样的ssh

在 MobaXterm 中的 Bash 中,ssh别名为 ,/bin/ssh.exe这是一个最终运行的 shell 脚本/bin/_ssh.exe。这些文件是随 MobaXterm 一起安装的。在 MobaXterm 之外,它们存在于%MyDocuments%\MobaXterm\slash\bin

您的命令提示符使用其他 ssh.exe

只有两个点的 IP 地址已验证但在实践中,一些工具可能不同意。而且这不是唯一可能导致不同意的原因,参见关于前导零的问题


为了使两种方法的行为相同,您需要使用相同 ssh.exe每一次。

  • 总是ssh从 MobaXterm 使用。

    请注意,即使您在 Windows 中添加%MyDocuments%\MobaXterm\slash\binPATH您也无法ssh.exe从 MobaXterm 使用,因为它不是 Windows 可以理解的可执行文件。您可以使用_ssh.exe:将其复制到另一个位置,重命名以在 Windows 中ssh.exe进行调整PATH。这ssh不是支持类似地址[email protected]

  • 或者反过来:总是使用其他的ssh

    • 最简单的方法似乎是重新定义sshMobaXterm 内部的 Bash 中的别名以指向ssh.exe命令提示符所使用的别名。

      alias ssh='/cygdrive/c/proper/path/ssh.exe'
      

      但请注意原文/bin/ssh.exe 脚本是有原因的。所以也许最好保留原始别名并……

    • 脚本中的补丁SSH_PROG="/bin/_ssh.exe"并指向/cygdrive/c/proper/path/ssh.exe。不过,“新”ssh.exe可能与脚本不完全兼容。将来的更新(如果有)可能会恢复更改。

    无论如何,在您的情况下,这ssh应该支持类似地址[email protected]

即使ssh.exe在一种情况下使用相同但仍依赖脚本,结果也可能不完全相同,因为脚本会做一些额外的事情。

答案2

10.2.25 是一个不完整的 IP 地址,那里缺少数字。这就是“主机名”无法解析的原因

相关内容