如何在Windows批处理文件中通过ssh命令传递密码

4

你有考虑过设置 SSH 密钥吗? - Squashman
谢谢@Squashman,实际上我需要在虚拟机上运行我的自动化代码。所以我计划从我的Jenkins作业传递它,因为我不知道我的代码将在哪个执行器/虚拟机上运行,所以设置SSH密钥对我来说似乎不是一个选项。 - smith
1个回答

0

我认为仅仅使用 批处理 脚本是不可能的,或者说没有配置 ssh。

因为一旦调用 ssh 命令,该语句(进程)会一直保持,直到提供密码并执行 (ssh) 命令之后,才能继续调用其他进程。

因此,最快捷和最简单的方法是创建一个脚本,在执行 ssh 命令之前将密码复制到剪贴板中(不安全),当您被要求输入密码时,您就可以准备好通过 Ctrl + v 粘贴它了。

将以下代码保存到名为 bssh.bat 的文件中,并将其放在路径中。将您的密码保存在某个文本文件 password.txt 中,并根据需要在下面的脚本中更改位置 path\to\the\password.txt,这样当您按下 bssh 时,它应该运行 ssh 命令并将密码复制到剪贴板中:

for /f "tokens=*" %a in ('type "path\to\the\password.txt" ^| clip ^&^& ssh -f 10.92.21.183 -L 5432:127.0.0.1:5432 -N -l admapp') do %a

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接