【问题标题】:SSH to remote Windows machine using username and password through shell script通过 shell 脚本使用用户名和密码 SSH 到远程 Windows 机器
【发布时间】:2019-11-16 21:38:22
【问题描述】:

我正在尝试使用远程计算机的用户名和密码通过 SSH 连接到远程 Windows 计算机(AWS ec2 实例)。我需要自动化此连接以从我的脚本(shell 或 Power shell)运行一些远程命令而不提示我输入密码,我的脚本不应该因期望提示密码而失败

我不想使用 sshpass 或任何生成的密钥(通过使用 ssh-keygen)。由于我运行此命令/脚本的源机器不是专用机器,因此我可能每次都在不同的机器上运行它。我还尝试使用 AWS 提供的 .PEM 文件进行连接,如下所示(认为在使用脚本时可能很容易)。

$ssh -i aws_keypair.pem Administrator@10.10.10.10
Administrator@10.10.10.10's password:

即使我使用了 .PEM 文件,它仍然需要我输入密码,我还尝试在远程 Windows 机器中的路径“C:\Users\Administrator.ssh\”下创建一个文件“authorized_keys”。它仍然提示我输入密码。

期待:

使用 PEM 文件连接到远程 Windows 机器并运行一些远程命令。

(或)

当我尝试从某个脚本(shell/power shell)连接时,它不应该提示我输入密码。

【问题讨论】:

  • @Kenster,您分享的上述链接仍在谈论 sshpass(或)生成密钥(或)使用 Putty.exe 但没有一个答案涵盖我使用 PEM 文件连接远程 Windows 的确切问题机器(在 AWS 上运行)或脚本不应该提示输入密码失败。 SSH 命令应该接受用户名和密码
  • 您使用的是什么应用程序? SSH 不是本机 Powershell 命令,所以 ~(我假设您使用的是 Putty?您最好用应用程序名称标记问题,但您也可以尝试使用与其接口的 Powershell 模块 - POSH-SSH
  • 我正在 Jenkins Pipeline 代码上尝试这种方法,它可以用 Groovy 编写。所以我使用 sh '' 来运行 SHELL 命令。所以在我的 Jenkins 文件中它可能像 sh 'ssh -i aws_keypair.pem Administrator@10.10.10.10 "dir" ' 然后它应该连接到远程 WINDOWS 机器并在那里执行 dir 命令并显示输出。

标签: windows powershell ssh


【解决方案1】:

我可以使用 Plink 命令来实现这一点(需要在源计算机上安装 Putty 才能执行此命令)。所以现在,我可以在脚本(Shell 脚本)中成功传递用户名和密码,一切都按预期工作。

仅供参考,我正在粘贴对我有用的确切命令

$echo y | plink -ssh Administrator@10.10.10.10 -pw abc123  "dir"

【讨论】:

    猜你喜欢
    • 2016-03-28
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 2012-07-25
    • 2015-08-05
    • 1970-01-01
    • 2019-11-03
    • 2023-03-10
    相关资源
    最近更新 更多