我想从我的Windows运行sshpass命令到远程linux服务器。我用了这个命令:
sshpass -p ‘password’ ssh ldap.nextstep4it.com -l root -o StrictHostKeyChecking=no
但我的cmd返回错误声明:
'sshpass'未被识别为内部或外部命令, 可操作程序或批处理文件。
我认为这是因为windows没有像linux这样的sshpass包。从linux我必须安装sshpass包才能运行这个命令。
有没有人知道如何通过Windows命令行运行sshpass命令?
答案 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.exe
或Process.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
开关设置所需主机密钥的指纹。
类似地:
pscp
代替OpenSSH scp
; psftp
代替OpenSSH sftp
。两个都有-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并编译/安装它,整个过程快速简便,在我的环境中运行良好。