通过Windows命令提示符执行带密码验证的ssh

时间:2012-08-25 00:50:42

标签: command-line ssh passwords

我需要通过以非交互方式提供密码,从 Windows命令行执行 ssh 。我可以实现基于密钥的身份验证,并且能够执行ssh命令,就像

一样
ssh <user>@<host> <command>

是否有像

这样的命令
ssh <user>@<host> -P <password> <command>

enter image description here

我不知道这是否可行。但是,可以有一些相同的工作。给我一些想法来实现同样的目标。

5 个答案:

答案 0 :(得分:160)

sshpass实用程序就是为了这个目的。首先,输入以下命令安装sshpass:

sudo apt-get install sshpass

然后使用

添加ssh / scp命令
sshpass -p '<password>' <ssh/scp command>

使用Linux时,此程序最容易安装。

用户应考虑使用SSH更安全的公钥认证(使用ssh命令)。

答案 1 :(得分:24)

这个期望脚本怎么样?

#!/usr/bin/expect -f
spawn ssh root@myhost
expect -exact "root@myhost's password: "
send -- "mypassword\r"
interact

答案 2 :(得分:11)

PuTTY的plink有一个command-line argument for a password。在the answers to this question中已经提出了一些其他建议:使用Expect(适用于Windows),或者使用Paramiko在Python中编写启动器。

答案 3 :(得分:1)

Windows 解决方案

  1. 安装PuTTY
  2. Windows-Key + R
  3. 输入putty.exe -ssh [username]@[hostname] -pw [password]

答案 4 :(得分:0)

PowerShell解决方案

使用Posh-SSH:

New-SSHSession -ComputerName 0.0.0.0 -Credential $cred | Out-Null
Invoke-SSHCommand -SessionId 1 -Command "nohup sleep 5 >> abs.log &" | Out-Null