我使用以下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等同于标准的程序中的字符串。如何做到这一点?
答案 0 :(得分:0)
这完全取决于ssh-add
可执行文件的工作方式。
如果它接受密码的标准输入(这似乎不太可能),那么你可以输入密码。这将是非常不安全的,绝对不推荐(如果它可以工作)。
如果ssh-add
接受命令行参数来指定密码,您可以使用它(再次:不安全)。