我想创建脚本,它只运行ssh-keygen -t rsa
。但如何传递给它3次进入?
答案 0 :(得分:203)
尝试:
ssh-keygen -t rsa -N "" -f my.key
-N ""
告诉它使用空密码(与交互式脚本中的两个输入相同)
-f my.key
告诉它将密钥存储到my.key
中(根据需要进行更改)。
整个过程运行时无需提供任何输入键:)
要发送进入交互式脚本:
echo -e "\n\n\n" | ssh-keygen -t rsa
答案 1 :(得分:20)
带密码的版本是:
$ ssh-keygen -t rsa -b 4096 -C "comment" -P "examplePassphrase" -f "desired pathAndName" -q
答案 2 :(得分:0)
同意Michel Marro,但需要更多: 如果该文件已经存在,它将仍然是交互式的,询问是否必须覆盖它。
使用此question的答案。
yes y | ssh-keygen -q -t rsa -N '' >/dev/null
必须重定向到null才能使覆盖消息静音。
答案 3 :(得分:0)
为了安全性和性能,建议使用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
是公共文件。
答案 4 :(得分:-1)
echo -e "\n"|ssh-keygen -t rsa -N ""