【问题标题】:How to overwrite existing SSH key file using ssh-keygen and PowerShell without typing y如何在不输入 y 的情况下使用 ssh-keygen 和 PowerShell 覆盖现有的 SSH 密钥文件
【发布时间】:2020-04-18 20:08:36
【问题描述】:

如果我想在不输入 y 的情况下覆盖现有的 SSH 密钥文件,那么我会在 bash 中执行此操作:

echo "y" | ssh-keygen -f /home/wakatana/id_rsa -N ""

如何使用 PowerShell 实现相同的功能?我试过以下:

Write-Host "y" | ssh-keygen.exe -f C:\Users\wakatana\Desktop\id_rsa -N """"

它不会显示Overwrite (y/n)? 对话框,但我不会重写现有密钥。有什么问题?

【问题讨论】:

    标签: powershell ssh ssh-keys openssh ssh-keygen


    【解决方案1】:

    在调用ssh-keygen之前删除该文件(如果它已经存在)。

    盲目地向应用程序发送“是”,而不知道它首先要求什么,这是非常危险的。

    【讨论】:

      【解决方案2】:

      尝试Write-Output 而不是Write-Host

      Write-Output "y" | ssh-keygen.exe -f .\test -N "blahblah"
      

      【讨论】:

      • Write-Output 在这里是多余的。
      • @Bill_Stewart 说得好。这应该也可以:"y" | ssh-keygen.exe -f .\test -N "blahblah"
      • 非常感谢。这行得通。你能解释一下为什么Write-Host 不工作而Write-Output 工作吗?
      • @WakanTanka here 是一个很好的解释。用我自己的话来说,Write-Host 将输出发送到“主机”,这可能会有所不同,但通常是命令控制台。 Write-Output 通过管道将输出发送到 STDOUT,然后将其解释为管道中下一个本机命令的 STDIN。
      猜你喜欢
      • 2011-07-13
      • 1970-01-01
      • 2021-09-10
      • 2020-08-06
      • 2018-09-08
      • 2022-11-22
      • 1970-01-01
      • 2020-06-02
      • 2019-07-07
      相关资源
      最近更新 更多