sha1pass
コマンドラインで機密性の高いパスワードのハッシュを生成するために使用していたとします。のsha1pass mysecret
ハッシュを生成するために使用できますmysecret
が、これにmysecret
は現在bash履歴にある欠点があります。mysecret
おそらくpasswd
-styleプロンプトを使用して、プレーンテキストでの表示を回避しながら、このコマンドの最終目標を達成する方法はありますか?
また、機密データをコマンドに渡すためにこれを行う一般的な方法にも興味があります。メソッドは、機密データが引数(inなど)として、sha1pass
またはSTDINで何らかのコマンドに渡されると変更されます。
これを達成する方法はありますか?
編集:この質問は多くの注目を集めており、いくつかの良い答えが下に提供されています。要約は次のとおりです。
- あたりとしてKusalanandaの答え@、理想的には、ユーティリティのコマンドライン引数としてパスワードや秘密を与える必要はないだろう。これは彼が説明したようにいくつかの点で脆弱であり、STDINで秘密の入力を取得できる、より良く設計されたユーティリティを使用する必要があります。
- @vfbsilvaの答えは、bashの履歴に物事が保存されるのを防ぐ方法を説明しています
- @Jonathanの答えは、プログラムがSTDINでその秘密データを取得できる限り、これを達成するための完全に良い方法を説明しています。そのため、この答えを受け入れることにしました。
sha1pass
私のOPでは例に過ぎませんが、STDINでデータを取得するより優れたツールが存在するという議論が確立されました。 - @R ..内のノート彼の答えは、変数のコマンド拡張を使用することであるない安全。
要約すると、適切に設計され、適切に動作するプログラムがあることを考えると、@ Jonathanの回答が最良のソリューションであるため、@ Jonathanの回答を受け入れました。コマンドライン引数としてパスワードまたはシークレットを渡すことは基本的に安全ではありませんが、他の答えは単純なセキュリティ上の懸念を軽減する方法を提供します。
sha1pass mysecret
ができるため、何mysecret
が起こっているかを知ることができます。(もちろん、プログラムが実際に実行されている間、これは数秒間しか機能しません...)