如何使用 ssh-keygen 和 PowerShell 覆盖现有 SSH 密钥文件,而无需输入 y

问题描述 投票:0回答:4

如果我想覆盖现有的 SSH 密钥文件而不输入 y,那么我会在 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
4个回答
4
投票

如果文件已经存在,只需删除该文件,然后再调用

ssh-keygen

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


1
投票

为什么不先

rm
现有的键?

Powershell(不是ps大师,所以根据口味调整):

Remove-Item -Path C:\Users\wakatana\Desktop\id_rsa && Remove-Item -Path C:\Users\wakatana\Desktop\id_rsa.pub && ssh-keygen.exe -f C:\Users\wakatana\Desktop\id_rsa -N """"

Linux(因为我在这里,这就是我来的目的):

rm -f path/to/.ssh/id_rsa* && ssh-keygen -b 4096 -t rsa -f path/to/.ssh/id_rsa

JIC 任何一项都会协助下一个过来。继续努力吧,开发者们 =]

编辑:我读得很好。刚刚听到 Martin Prikryl 的回答。相同的差异 - 哈!


0
投票

尝试用

Write-Output
代替
Write-Host

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


0
投票

在 Linux 上,只需使用 yes|ssh-keygen ...

© www.soinside.com 2019 - 2024. All rights reserved.