如何自动将密码发送到等待密码的程序

时间:2017-01-19 12:06:07

标签: powershell

我使用以下PowerShell脚本来配置我的shell,其中包含与ssh-agent关联的环境变量。

function eval-ssh-agent
{
  $t0 = (ssh-agent) | Out-String
  $t0 -match 'SSH_AUTH_SOCK=([a-zA-Z0-9.\-\/]*);[\w\d\s;]*SSH_AGENT_PID=([0-9]*);'
  $env:SSH_AUTH_SOCK=$Matches[1]
  $env:SSH_AGENT_PID=$Matches[2]
  ssh-add C:\mykey

}

它工作正常,但是当PowerShell运行ssh-add时,它总是阻止标准输入,询问我的ssh密钥的密码。然后我必须输入密码并点击返回。如何在脚本中自动执行此操作?

理想情况下,我想将类似Unix的PowerShell等同于标准的程序中的字符串。如何做到这一点?

1 个答案:

答案 0 :(得分:0)

这完全取决于ssh-add可执行文件的工作方式。

如果它接受密码的标准输入(这似乎不太可能),那么你可以输入密码。这将是非常不安全的,绝对不推荐(如果它可以工作)。

如果ssh-add接受命令行参数来指定密码,您可以使用它(再次:不安全)。