下面两个命令在我使用命令提示符时有效,但在 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\bin
,PATH
您也无法ssh.exe
从 MobaXterm 使用,因为它不是 Windows 可以理解的可执行文件。您可以使用_ssh.exe
:将其复制到另一个位置,重命名以在 Windows 中ssh.exe
进行调整PATH
。这ssh
将不是支持类似地址[email protected]
。或者反过来:总是使用其他的
ssh
。最简单的方法似乎是重新定义
ssh
MobaXterm 内部的 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 地址,那里缺少数字。这就是“主机名”无法解析的原因