Answers:
尝试:
ssh-keygen -t rsa -N "" -f my.key
-N ""
告诉它使用空密码短语(与交互式脚本中的两个回车相同)
-f my.key
告诉它将密钥存储到 my.key
(根据您的需要更改)。
整个过程无需您提供任何Enter键即可:)
要将Enter发送到交互式脚本:
echo -e "\n\n\n" | ssh-keygen -t rsa
ssh-keygen
-您是否将其重新添加了?{edited}另外-您不能多次运行该脚本-它更改了问题以确认您要覆盖现有的_rsa
密钥文件(因此需要提供ay或n)
yes ""
而不是echo -e "\n\n\n"
(yes
输出无穷大的参数(默认情况下,默认为“ y”)输出–对于那些只想对程序可能提示的情况提供“是”答案的情况是完美的)。yes
较短,应该ssh-keygen
添加一个问题,该问题也会自动回答。:)
带有密码短语的版本是:
$ ssh-keygen -t rsa -b 4096 -C "comment" -P "examplePassphrase" -f "desired pathAndName" -q
同意米歇尔·马罗(Michel Marro)但还需要更多:如果文件已经存在,它将仍然是交互式的,询问是否必须覆盖它。
使用这个问题的答案。
yes y | ssh-keygen -q -t rsa -N '' >/dev/null
必须重定向到null才能使覆盖消息静音。
echo -e "\n"|ssh-keygen -t rsa -N ""
echo -e
发出的东西-e
根本不是,这并不是到处ssh-keygen
都是可用的)。
ssh-keygen -N ''
过程中的自动化安装过程作为一部分使用,并且它根本不读取stdin,因此不需要将管道echo
(任何 echo
变体)插入管道。(当然,我认为stdin已连接到/dev/null
我的生产用例中;将它附加到TTY上可能会有不同的行为,但更好的答案是</dev/null
而不是echo ... |
)
$ ssh-keygen -t rsa -N '' Generating public/private rsa key pair. Enter file in which to save the key (/home/dlyons/.ssh/id_rsa):
为了安全性和性能,建议使用ed25519。
yes "y" | ssh-keygen -o -a 100 -t ed25519 -C "Bla Bla" -f /mypath/bla -N ""
这里
-o
OpenSSH密钥格式,而不是较早的PEM(需要OpenSSH 6.5+)
-a
筛选DH-GEX候选人时进行素数测试的次数
-t
密钥类型(ed25519,RSA,DSA等)
-f /mypath/bla
输出文件的路径和名称
-N ""
使用空的阶段
而yes "y"
对于没有互动。
它将生成两个文件
/mypath/bla
/mypath/bla.pub
该bla
文件是私有文件还是公开文件bla.pub
。