自动化ssh-keygen -t rsa,因此它不会要求密码

时间:2012-05-26 15:28:41

标签: ssh-keys

我需要在没有密码的情况下自动化ssh-keygen -t rsa,即在提示时输入 我怎么能从shell脚本中做到这一点?

7 个答案:

答案 0 :(得分:217)

要生成SSH密钥对而不提示输入密码,您可以执行以下操作:

$ ssh-keygen -f id_rsa -t rsa -N ''

答案 1 :(得分:24)

如果您需要在Windows中使用PowerShell执行此操作:

ssh-keygen -f $Name -t rsa -N '""'

请注意,您还必须确保git bin目录位于您的路径中:

$sshPath = "<path>\git\bin\"

$env:path += ";$sshPath"

然后在PoshGit中使用它只是:

Add-SshKey "<path>\.shh\KeyFilename"

答案 2 :(得分:18)

$ ssh-keygen -f $HOME/.ssh/id_rsa -t rsa -N ''

答案 3 :(得分:11)

只是纠正回答2 ... 我在我的OL和RHEL系统上发现文件名应该是id_rsa而不是id.rsa。

因此,在OL或RHEL系统上,命令为:

$ ssh-keygen -f id_rsa -t rsa -N ''

答案 4 :(得分:7)

怎么样:

dataData

ssh-keygen -q -t rsa -f ~/.ssh/id_rsa -N '' 中所述:

man ssh-keygen

(即Debian 9.4中的SYNOPSIS ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1] [-N new_passphrase] [-C comment] [-f output_keyfile] (...) -q Silence ssh-keygen. 包:openssh-client

答案 5 :(得分:0)

$ printf '\n' | ssh-keygen -N ''

答案 6 :(得分:0)

我需要在bash脚本中自动执行ssh-keygen命令以及最适合我的答案:

echo -e "\n" | ssh-keygen -N "" &> /dev/null

使用-e的echo命令解释&#34; \ n&#34;作为Enter键,但不能使用密码。然后使用选项-N&#34;&#34; (空密码)密码为空,不会要求任何东西。 &安培;&GT; / dev / null将发送&#39; stdout&#39;和&#39; stderr&#39;到/ dev / null所以没有任何东西通过显示器打印。