sshpass无法在Windows上识别

时间:2014-05-02 02:04:14

标签: linux windows ssh sshpass

我想从我的Windows运行sshpass命令到远程linux服务器。我用了这个命令:

sshpass -p ‘password’ ssh ldap.nextstep4it.com -l root -o StrictHostKeyChecking=no

但我的cmd返回错误声明:

'sshpass'未被识别为内部或外部命令, 可操作程序或批处理文件。

我认为这是因为windows没有像linux这样的sshpass包。从linux我必须安装sshpass包才能运行这个命令。

有没有人知道如何通过Windows命令行运行sshpass命令

  • 此问题实际上取自here

6 个答案:

答案 0 :(得分:5)

你无法在Windows中运行sshpass。 但是你可以通过windows命令行使用putty来实现同样的目的。

putty -load "host" -l username -pw password

您也可以使用WinSCP

通过命令行(使用密码)上传文件
winscp /command "option batch abort" "option confirm off" "open sftp://user:password@example.com/" "put examplefile.txt /home/user/" "exit"

答案 1 :(得分:4)

使用用于Linux的 Windows子系统WSL);首先转到Settings-> Turn Windows Features On or Off-> Enable Windows Subsystem for Linux,然后从Microsoft Store下载并安装Ubuntu或其他Linux。

要从cmd.exe访问WSL,请输入bash

sudo apt-get install sshpass

sshpass -p passxxxx ssh user@ip.address 'touch newfileonserver.txt

从Windows环境中调用,例如。 cmd.exeProcess.Start()

bash -c "sshpass -p passxxxx ssh user@ip.address 'touch newfileonserver.txt' "

答案 2 :(得分:1)

您可以安装适用于Windows的QtdSync。

这将包含sshpass.exe

答案 3 :(得分:1)

您可以使用PuTTY plink代替OpenSSH ssh。它的命令行等效于PuTTY,并且具有与OpenSSH ssh类似的命令行语法。但最重要的是,它具有-pw switch用于提供密码。

与您的plink通话等效的ssh是:

plink ldap.nextstep4it.com -l root -pw password

您绝对不应使用-o StrictHostKeyChecking=no盲目接受所有主机密钥。那是一个安全漏洞。您失去了针对MITM attacks的保护。相反,通过plink,您可以使用-hostkey开关设置所需主机密钥的指纹。


类似地:

两个都有-pw开关。

或者,对于SCP和SFTP,您都可以使用 my WinSCP SFTP/SCP client。 WinSCP还支持在命令行/脚本中提供密码。还有converting OpenSSH sftp script to WinSCP script的指南。


无论如何,如果您使用OpenSSH,PuTTY或WinSCP,最好使用公用密钥身份验证而不是使用密码。

答案 4 :(得分:0)

您可以尝试putty

here

下载

或者您可以安装cygwin并安装sshpass,但这将是一项更大的任务。

因此,如果您需要无密码登录,那么使用putty,您可以使用puttygen,您可以从上面提供的相同链接安装。

答案 5 :(得分:0)

只需在Windows中安装cygwin,然后下载sshpass并编译/安装它,整个过程快速简便,在我的环境中运行良好。