我需要在没有密码的情况下自动化ssh-keygen -t rsa
,即在提示时输入
我怎么能从shell脚本中做到这一点?
答案 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所以没有任何东西通过显示器打印。