パスワードなしで自動ssh-keygenを達成するには?

パスワードなしで自動ssh-keygenを達成するには?

ssh-keygen後で使用する公開/秘密鍵のペアを呼び出して生成する自動化されたスクリプトを作成したいと思います。原則として、すべてがうまくいきます...
ssh-keygen -b 2048 -t rsa -f /tmp/sshkey -q
暗号化キーのパスワードを入力するように求められます。現在、これにより自動化が困難になっています。

-N thepassphraseプロンプトを避けるために、コマンドライン引数を使用してパスワードを提供できます。しかし、私は鍵が欲しくないです。暗号化で保護- キーペアをプレーンテキストで表示したい。

この問題に対する(最良の)解決策は何ですか?

「静かさ/自動」を意味するオプションは、-qまだパスワードのやり取りを防ぐことはできません。まだこれは見つかりませんでした。
ssh-keygen ... -q --no-passphrase

Lost Passwordの長所と短所について私に説教したり講義したりしないでください。私も知っています。対話形式(スクリプトではなく)では、ユーザーは[ENTER]を2回押してキーをプレーンテキストとして保存します。これが私が次のスクリプトで達成したいものです。

#!/bin/bash

コマンド1
コマンド2
var=$(コマンド 3)

#スクリプトを停止してパスワードを要求しないでください。
ssh-keygen -b 2048 -t rsa -f /tmp/sshkey -q

答え1

これにより、パスワードプロンプトは表示されず、キーペアがプレーンテキストとして保存されるように設定されます(もちろん、すべての欠点とリスクもあります)。

ssh-keygen -b 2048 -t rsa -f /tmp/sshkey -q -N ""

使用Windows 10内蔵SSH

電源装置ハウジング:

ssh-keygen -b 2048 -t rsa -f C:/temp/sshkey -q -N '""'

注文する:

ssh-keygen -b 2048 -t rsa -f C:/temp/sshkey -q -N ""

答え2

必要な操作を実行する最も簡単な方法は次のとおりです(デフォルトのファイル名を使用する例)。

    < /dev/zero ssh-keygen -q -N ""

ファイルがすでに存在する場合は、~/.ssh/id_rsa何も変更せずにコマンドが終了します。

そうでない場合は、そのファイル名で新しいキーを受け取ります。

いずれにせよ、あなたは何も覆わず、最後に鍵があることを知っています。

答え3

これは私にとって効果的です。

ssh-keygen -t rsa -f /home/oracle/.ssh/id_rsa -q -P ""

-Pパスワードオプションで、空の""パスワードです。

答え4

他のユーザーの場合は、Ubuntu 18.04でテストしてください。

sudo -u username bash -c "ssh-keygen -f ~username/.ssh/id_rsa -N ''"

関連情報