在没有人工交互的情况下运行 ssh-keygen?

Hay*_*yek 13 linux ssh debian ssh-keys

是否可以在没有人工交互的情况下运行ssh-keygen

我有一个从头到尾负责服务器部署的 shell 脚本,但 ssh-keygen 是唯一仍然需要我输入的部分。

是否可以将参数提供给它?或者是否有类似于debconf-set-selections 的东西可以用于此目的?

*运行Debian

cra*_*cot 15

您可以或多或少地使用命令行参数做任何事情。您有什么特别想做但没有出现在手册页中的事情吗?

wry@onyx:~$ ssh-keygen -t dsa -N "my passphrase" -C "test key" -f mykey
Generating public/private dsa key pair.
Your identification has been saved in mykey.
Your public key has been saved in mykey.pub.
The key fingerprint is:
2f:17:a4:5d:6f:25:d7:5a:0e:84:be:af:ee:52:8b:42 test key
Run Code Online (Sandbox Code Playgroud)

(为简洁起见,其余部分剪掉了)

  • 最好避免将此命令存储在您的历史记录中 - 您不希望密码以明文形式记录在您的计算机上。(是的,通常历史文件有 600 个权限,所以只有 root 可以窥探,但安全总比抱歉好。) (2认同)
  • 关键是他无论如何都会编写剧本。 (2认同)
  • 如果该名称的文件已经存在,它仍然需要人工交互。 (2认同)

小智 6

在服务器部署的情况下:

ssh-keygen -t rsa -q -f "$HOME/.ssh/id_rsa" -N ""
Run Code Online (Sandbox Code Playgroud)

从安装的服务器到 git 存储库或其他服务器的通信将很容易。