【发布时间】: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