1

我正在尝试通过 Java 通过 putty 与远程服务器建立 ssh 连接。我可以通过双击 putty.exe 并执行 ssh 来做到这一点。

我如何能够从命令提示符处执行此操作。我得到invalid port number消息。但它通过 putty.exe(GUI) 工作

我在用 :

c:> putty.exe -ssh -l username -pw password -m someCommandtoExecute remote_host(_name or IP)
4

3 回答 3

2

我今晚在连接到 BSD 服务器的 Windows 计算机上做了一些测试。如果我输入

putty.exe -l username -pw password server.domain.com

我可以毫无问题地连接。如果我尝试

putty.exe -l username -P password server.domain.com

我收到一个警告框,标题为PuTTY Internal Error,消息为Invalid Port Number。事实上,这是我唯一一次可以收到该错误消息。

如果您使用的是好的密码(大小写混合、特殊符号等),密码可能是问题的根源。也许尝试用双引号将密码括起来,如

putty.exe -l username -pw "password" server.domain.com

您使用的是最新版本的 PuTTY 吗?我正在使用 0.60,这似乎是最新版本。

最后,我知道这些听起来很简单,您是在测试时在命令提示符下手动输入它,还是您的测试是作为更大脚本的一部分完成的?为简单起见,在尝试将其集成到更大的流程中之前,我会先手动运行它。出于同样的原因,我也会-m在尝试解决此问题时停止尝试自动运行远程命令 ( )。看起来你已经是了,但检查一下不会有什么坏处......

如果你看不出来,我有点抓到稻草了。我似乎无法复制这个问题,除非在-P命令行的某处包含一个。

于 2010-09-15T02:08:03.680 回答
0

我在使用连接时没有任何问题

C:\Program Files\PuTTY> putty -ssh -l <username> <hostname or host ip>

唯一能想到的事情要么是 1) 用作-m论据的一部分的脚本有问题,要么是 2) 不正确地使用大写字母。错误消息可以由脚本而不是命令生成吗?你可能用过吗

C:\Program Files\PuTTY> putty -ssh -L <username> <hostname or host ip>

大写L字母用于端口转发设置,而小写字母l用于指定登录名(用户名)。

几点注意事项:

plink在不打开新窗口的情况下执行类似的工作。可能值得探索,但命令几乎相同。

将明文密码放在命令行上通常不是一个好主意。您最好探索密钥,尤其是对于自动化过程。快速搜索会找到各种链接,但您需要检查处理特定情况的最佳方法。如果您希望它作为自动化脚本的一部分运行,那么您将做不同的事情,而不是将它作为您已经运行 Pageant 的交互式会话的一部分运行。

如果您确实使用键,那么您的命令行将变为

putty -ssh <username>@<host> -m <script on local machine>
于 2010-09-10T20:37:27.063 回答
0

我在Win10使用putty 0.60and TortoiseSVN 1.9.4(Build 27285 - 64 Bit, 2016/04/24 13:59:58)
时遇到TortoiseSVN | Show log了这个问题svn+ssh

正如Elliot Lee所描述的,删除 Tortoise 的 ssh 客户端条目修复了它:
TortoiseSVN -> Settingscategory Network、 empty SSH client。(我以前path/to/putty.exe在这里)

于 2016-06-14T13:36:05.297 回答