Centos7でシェルスクリプトを使用してsshキーのペアを自動生成したいのですが、
yes "y" | ssh-keygen -t rsa
echo "\n\n\n" | ssh-keygen...
echo | ssh-keygen..
これらのコマンドはすべて機能せず、「enter」を1つ入力するだけで、シェルパス「Enter passphrase(empty for no passphrase)」で停止します。シェルで複数の「enter」を連続してシミュレートする方法を知りたいだけです。
誰か助けてくれてありがとう!
-N
フラグを使用してvoidパスを入力するだけです:
ssh-keygen -t rsa -N ""
manページから:
-N new_passphrase Provides the new passphrase.
Id_rsaを上書きするには
yes y |ssh-keygen -q -t rsa -N '' >/dev/null
キーを保存するファイルをユーザーに要求しない場合は、ファイル出力フラグ-f
コマンドに。
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
この方法では、id_rsaファイルが既に存在しない限り、ユーザーは入力を求められません。
私にとって、sshコマンドで使用するときは、@ Lukasz answerと@Juan oneの両方の組み合わせを使用する必要がありました
ssh -p$SSH_PORT -q joker@$INSTANCE_IP 'yes y | ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa'