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

Bal*_*dar 90 passwords ssh command-line

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

ssh <user>@<host> <command>
Run Code Online (Sandbox Code Playgroud)

有没有像这样的命令

ssh <user>@<host> -P <password> <command>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

小智 161

sshpass工具是为正是这一点.首先,键入以下命令安装sshpass:

sudo apt-get install sshpass
Run Code Online (Sandbox Code Playgroud)

然后在前面加上你的ssh/scp命令

sshpass -p '<password>' <ssh/scp command>
Run Code Online (Sandbox Code Playgroud)

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

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

  • 因为标题不包含"windows",并且在为Linux/Unix/Mac搜索时它在列表中显示为高.所以,在这里回答这个问题可以节省时间. (15认同)
  • 也适用于rsync. (8认同)
  • 您应该知道已执行的shell命令已存储(例如在'.bash_history'中). (5认同)
  • 不完全确定 linux 实用程序(可以为 Cygwin 制作,但这是完全不同级别的系统管理)如何获得 64 票赞成……而 Plink 完全按照 OP 的要求执行并且不需要任何额外的工作(并且可能首先已经安装在他们的系统上)得到 1。我倾向于相信 Stack 在这些事情上,所以如果有充分的理由跳过通常令人讨厌且偶尔令人发狂的 make...呃...我真的很好奇它为什么会得到这么多的爱。 (4认同)
  • Anish - 作者要求windows,你给linux选项. (3认同)

Ill*_*huk 24

这个期望脚本怎么样?

#!/usr/bin/expect -f
spawn ssh root@myhost
expect -exact "root@myhost's password: "
send -- "mypassword\r"
interact
Run Code Online (Sandbox Code Playgroud)

  • 这是一个 LINUX 解决方案,问题是关于 WINDOWS 的! (6认同)

Gre*_*sev 11

PuTTY的plink有一个密码命令行参数.在这个问题的答案中已经提出了一些其他的建议:使用Expect(适用于Windows),或者使用Paramiko在Python中编写启动器.


opt*_*tes 10

视窗解决方案

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


Owa*_*sau 6

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
Run Code Online (Sandbox Code Playgroud)

  • 仅适用于 PowerShell 6(不适用于 Core 版本) (2认同)

Tho*_*tof 5

这篇文章是您问题的有效解决方案。

  1. 在 Windows 计算机上安装 PuTTY
  2. 执行“plink your_username@yourhost -pw your_password”

如果您使用 Windows 终端,并且希望 shell 在打开新选项卡时登录到远程计算机,您可以配置命令行参数(设置 -> Shell -> 命令行):

C:\Users\USERNAME\AppData\Local\Microsoft\WindowsApps\Microsoft.PowerShell.ID\pwsh.exe
-Command "plink USERNAME@192.168.0.1 -pw PASSWORD"
Run Code Online (Sandbox Code Playgroud)