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。