bashスクリプトがSSHキーを生成するための「Enter」キープレスの自動化


101

単に実行するスクリプトを作成したいと思いますssh-keygen -t rsa。しかし、それに渡す方法は3回入りますか?

回答:


217

試してください:

ssh-keygen -t rsa -N "" -f my.key

-N "" 空のパスフレーズを使用するように指示します(インタラクティブスクリプトの2つの入力と同じ)

-f my.keyキーを格納するように指示my.keyします(必要に応じて変更してください)。

Enterキーを入力する必要なく、すべてが実行されます。

入力をインタラクティブスクリプトに送信するには:

echo -e "\n\n\n" | ssh-keygen -t rsa

4
これは正しいアンサーですが、別のスクリプトで、Enterキーを2回以上押す方法を知りたいのです。
Sławosz

3
確かに-スクリプトに改行を送信する方法を含めるように回答を更新しました。
Rudu

2
echo -e "\ n \ n \ n" | sshkeygen -t rsaが機能しません。自分で試してみてください。最初に入るだけです。しかし、他の単純なスクリプトでは機能します。
Sławosz

1
投稿する前にテストしました- ssh-keygenドロップされたダッシュのように見えますが、正常に動作します-追加しましたか?{edited}また、スクリプトを複数回実行することはできません。既存の_rsaキーファイルを上書きするかどうかを確認するために質問が変更されます(yまたはnを指定する必要があります)
Rudu

13
yes ""代わりに使用することをお勧めしますecho -e "\n\n\n"yes出力される引数は何でも[デフォルトでは「y」)無限大–プログラムが要求する可能性のあるものすべてに「はい」の回答を提供したい場合に最適です)。yesは短く、ssh-keygen質問を追加する必要があります。質問も自動的に回答されます。:)
zrajm 2015


1

ミシェル・マーロに同意するさらに必要な場合を除いてます。ファイルがすでに存在する場合、ファイルを上書きする必要があるかどうかを尋ねるインタラクティブなメッセージが表示されます。

この質問の答えを使用してください。

yes y | ssh-keygen -q -t rsa -N '' >/dev/null

nullへのリダイレクトは、上書きメッセージを無音にするために必要です。


0
echo -e "\n"|ssh-keygen -t rsa -N ""

え?これは実際には、機能しないと主張する回答の1つよりも改行が少なくなっています(そして、それはプラットフォームのサブセットであり、どこでも利用できるわけではないecho -eもの以外の何かを-e発行しssh-keygenます)。
チャールズダフィー

...明確にするために、私はの生産利用するssh-keygen -N ''ようには必要ありません、プロシージャをインストールし、それがすべてでは標準入力読まない自動化の一環として、echo任意の echo変種)がそれにパイプ。(確かに、私は、標準入力が接続されていると信じて/dev/null、それがTTYに添付だときだけでなくさまざまな動作があるかもしれませんが、より良い答えは私の生産ユースケースで</dev/nullはなくecho ... |
チャールズ・ダフィー

1
それは、ファイル名のために私を求められます $ ssh-keygen -t rsa -N '' Generating public/private rsa key pair. Enter file in which to save the key (/home/dlyons/.ssh/id_rsa):
マニックス

0

セキュリティとパフォーマンスのためにed25519を使用することをお勧めします。

yes "y" | ssh-keygen -o -a 100 -t ed25519 -C "Bla Bla" -f /mypath/bla -N ""

ここに

-o 古いPEMの代わりにOpenSSHキー形式(OpenSSH 6.5以降が必要)

-a DH-GEX候補のスクリーニング中の素数テストの数

-t 鍵のタイプ(ed25519、RSA、DSAなど)

-f /mypath/bla 出力ファイルのパスと名前

-N "" 空のパスフェーズを使用

そして yes "y"相互作用がないため。

2つのファイルが生成されます

/mypath/bla
/mypath/bla.pub

どこblaのファイルには、プライベートで、bla.pub公開されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.