我想在Centos7上使用shell脚本自动生成一对ssh密钥,我已经尝试过
yes "y" | ssh-keygen -t rsa echo "\n\n\n" | ssh-keygen... echo | ssh-keygen..
所有这些命令都不起作用,仅输入一个“ enter”,然后在“ Enter passphrase(空无密码)为空”时停止shell脚本,我只想知道如何在shell中连续模拟多个“ enter”。
非常感谢任何人的帮助!
只需 使用一个空白通 使用-N标志:
-N
ssh-keygen -t rsa -N ''
要覆盖密钥文件 (在此示例中id_rsa):
id_rsa
ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa 2>/dev/null <<< y >/dev/null
从ssh-keygen 手册 页:
ssh-keygen
-N new_passphrase provides the new passphrase. -q silence ssh-keygen. -f filename specifies the filename of the key file.
逐步说明
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/klashxx/.ssh/id_rsa):
1 )为避免输入密钥,请使用-f:
-f
$ ssh-keygen -t rsa -f ~/.ssh/id_rsa Generating public/private rsa key pair. /home/klashxx/.ssh/id_rsa already exists. Overwrite (y/n)?
2 )现在我们需要对 覆盖问题 自动回答“ y ” (让我们为该作业使用 here字符串 ): __ __
$ ssh-keygen -t rsa -f ~/.ssh/id_rsa <<< y Generating public/private rsa key pair. /home/klashxx/.ssh/id_rsa already exists. Overwrite (y/n)? Enter passphrase (empty for no passphrase):
3 )最后,我们将使用该-N标志输入无效通行证:
$ ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa <<< y Generating public/private rsa key pair. /home/klashxx/.ssh/id_rsa already exists. Overwrite (y/n)? Your identification has been saved in /home/klashxx/.ssh/id_rsa. Your public key has been saved in /home/klashxx/.ssh/id_rsa.pub. The key fingerprint is: SHA256:Xo0t6caMB/8TSsigxfY28JIfqYjyqxRZrFrPncx5yiU klashxx@server The key's randomart image is: +---[RSA 2048]----+ | | | . | | o . | | + * = | | +. + BSo= o | |...o.+o+XO... | |.. .o.E==+B. . | |o . ...=.o... | |.+o. o .. | +----[SHA256]-----+
4 ) 多余的球 ,清理输出,只需检查返回码:
$ ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa 2>/dev/null <<< y >/dev/null $ echo $? 0
荣誉
@ lukasz-dynowski,@ redochka,@ mellow-yellow和该线程中的其他成员。