我正在尝试通过 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)
我正在尝试通过 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)
我今晚在连接到 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
命令行的某处包含一个。
我在使用连接时没有任何问题
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>
我在Win10
使用putty 0.60
and TortoiseSVN 1.9.4
(Build 27285 - 64 Bit, 2016/04/24 13:59:58)
时遇到TortoiseSVN | Show log
了这个问题svn+ssh
。
正如Elliot Lee所描述的,删除 Tortoise 的 ssh 客户端条目修复了它:
TortoiseSVN -> Settings
category Network
、 empty SSH client
。(我以前path/to/putty.exe
在这里)