我正在尝试通过Java将put连接到远程服务器。我能够做到 从双击putty.exe并执行ssh。
如何从命令提示符处执行此操作。我收到了invalid port number
条消息。但它通过putty.exe(GUI)
我正在使用:
c:> putty.exe -ssh -l username -pw password -m someCommandtoExecute remote_host(_name or IP)
答案 0 :(得分: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
。
答案 1 :(得分: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>
答案 2 :(得分:0)
我在Win10
和putty 0.60
以及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
类别Network
,空SSH client
。 (之前我在这里path/to/putty.exe
)