14

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

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

但我的 cmd 返回以下错误语句:

'sshpass' 不是内部或外部命令、可运行程序或批处理文件。

我认为这是因为 Windows 没有sshpassLinux 那样的软件包。从 Linux 我必须安装sshpass包才能运行这个命令。

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

4

6 回答 6

13

您不能在 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"
于 2014-05-15T04:55:38.357 回答
5

使用适用于 Linux 的 Windows 子系统( WSL); 首先转到Settings-> Turn Windows Features On or Off-> Enable Windows Subsystem for Linux,然后从.Microsoft Store

要从cmd.exetypebash或访问 WSL wsl,我推荐hyper用于终端,因为它有选项卡。

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' "
于 2020-03-30T17:08:28.110 回答
4

您可以为 Windows 安装 QtdSync。

这将包含 sshpass.exe

于 2016-08-10T13:44:16.250 回答
3

ssh您可以使用PuTTYplink而不是 OpenSSH 。它是 PuTTY 的命令行等效项,并且具有与 OpenSSH 非常相似的命令行语法ssh。但最重要的是,它有提供密码的-pw开关。

plink相当于你的电话ssh是:

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

您绝对不应该-o StrictHostKeyChecking=no盲目地接受所有主机密钥。那是一个安全漏洞。您失去了对MITM 攻击的保护。相反,plink您可以使用-hostkeyswitch 来设置预期主机密钥的指纹。


相似地:

两者都有-pw开关。

或者,对于 SCP 和 SFTP,您可以使用我的 WinSCP SFTP/SCP 客户端。WinSCP 还支持在命令行/脚本中提供密码。还有一个将 OpenSSHsftp脚本转换为 WinSCP 脚本的指南。


无论如何,如果您使用 OpenSSH、PuTTY 或 WinSCP,使用公钥认证总是比使用密码更好。

于 2020-09-28T18:52:34.960 回答
0

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

于 2014-12-22T04:44:05.943 回答
-3

你可以试试putty

这里下载

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

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

于 2014-05-02T09:58:15.213 回答