我需要在ssh-keygen -t rsa
没有密码的情况下自动化,即在提示符下输入。
我怎样才能从 shell 脚本中做到这一点?
问问题
91121 次
7 回答
240
要在不提示输入密码的情况下生成 SSH 密钥对,您可以执行以下操作:
$ ssh-keygen -f id_rsa -t rsa -N ''
于 2013-02-18T22:45:10.347 回答
44
如果您需要在 Windows 中从 PowerShell 执行此操作,请使用:
ssh-keygen -f $Name -t rsa -N '""'
请注意,您还必须确保 git bin 目录在您的路径中:
$sshPath = "<path>\git\bin\"
$env:path += ";$sshPath"
然后在 PoshGit 中使用它只是:
Add-SshKey "<path>\.shh\KeyFilename"
于 2013-11-02T00:15:24.530 回答
20
$ ssh-keygen -f $HOME/.ssh/id_rsa -t rsa -N ''
于 2016-10-09T01:29:53.247 回答
13
只是对答案 2 的更正...我在我的 OL 和 RHEL 系统上发现文件名应该是 id_rsa 而不是 id.rsa。
因此,在 OL 或 RHEL 系统上,命令将是:
$ ssh-keygen -f id_rsa -t rsa -N ''
于 2014-12-16T09:29:45.863 回答
10
关于什么 :
ssh-keygen -q -t rsa -f ~/.ssh/id_rsa -N ''
如中所述man ssh-keygen
:
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
Debian 9.4 中的 package : OpenSSH_6.7p1 Debian-5+deb8u4
)
于 2018-04-20T11:21:04.533 回答
0
$ printf '\n' | ssh-keygen -N ''
于 2017-08-09T04:11:32.213 回答
0
我需要在 bash 脚本中自动化 ssh-keygen 命令和对我来说效果很好的最终答案:
echo -e "\n" | ssh-keygen -N "" &> /dev/null
带有 -e 的 echo 命令将“\n”解释为 Enter 键,但不适用于密码短语。然后使用选项 -N "" (空密码)密码将为空并且不会要求任何东西。&> /dev/null 会将“stdout”和“stderr”发送到/dev/null,因此不会通过显示器打印任何内容。
于 2017-08-23T14:44:20.453 回答