首页 > 解决方案 > Powershell脚本通过ssh登录并发送返回

问题描述

我面临的挑战是自动 ssh 登录到 Linux 框,该框在登录后要求接受 eula。所以我需要按两次向下箭头键,然后按一个键和一个回车键。有没有办法用 power shell 做到这一点?

标签: powershellsshautomation

解决方案


您可以使用 SendKeys 执行此操作。

以我们可以更轻松地找到窗口的方式开始该过程。否则,只需更改控制台标题并搜索即可。

Start-Process ssh Server-Name
Sleep 1 

要将密钥发送到一个窗口,您需要激活该窗口“C:\Windows\System32\OpenSSH\ssh.exe”是我执行 Start-Process 后窗口的标题

$wshell = New-Object -ComObject wscript.shell;
$wshell.AppActivate('C:\Windows\System32\OpenSSH\ssh.exe')

然后你的配置。

Sleep 1
$wshell.SendKeys('{DOWN}')
Sleep 1
$wshell.SendKeys('{DOWN}')
Sleep 1
$wshell.SendKeys('a')

登录

$wshell.SendKeys('mysupersecurepasswordnobodywilleverguess')
$wshell.SendKeys('{ENTER}')

我建议您在像这样的脚本中使用密码之前对其进行加密。


推荐阅读