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

rjee0c15  于 2022-11-10  发布在  Shell
关注(0)|答案(3)|浏览(409)

如果我想在不键入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)?对话框,但我不会重写现有密钥。有什么问题吗?

brtdzjyr

brtdzjyr1#

如果文件已经存在,只需在调用ssh-keygen之前将其删除。

  • 在不知道应用程序首先要求什么的情况下,盲目地向应用程序发送“是”是相当危险的。*
ohfgkhjo

ohfgkhjo2#

尝试Write-Output而不是Write-Host

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

1zmg4dgp

1zmg4dgp3#

为什么不先使用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中的任何一个都会帮助下一个停下来的人。继续前进,同事们=]
编辑:我读得很好。刚刚听懂了马丁·普里克里尔的回答。一样的不同--哈!

相关问题