コンテキスト:起動時に表示されるパスワードをUSBドングルに保存されているキーファイルに置き換えました。私の質問には次のステップが含まれます
# cryptsetup luksAddKey /path/to/mykeyfile
。私が生成した追加キーは次のように生成されました
dd if=/dev/urandom of=mykeyfile bs=512 count=4
。**私の目標はbashで実行することです(動作します...)。出るパスワードプロンプトが表示され、最後にプロンプトが0になります。 **私の質問:
- 似たようなことができますか
cryptsetup luksAddKey -passphrase "Hello, my name is Jolly Roger" /path/to/mykeyfile
? - それとも、少なくともスクリプト呼び出しにパラメータとしてパスワードを渡すことはできますか?
# sh myscript.sh -passphrase "Jolly..."
これはSSHに存在します
sshpass
。
/etc/crypttab
セキュリティ上の注意:パスワードはキーファイルに置き換えられているため、スクリプトにパスワードを書き込むことはまったく気にしません。また、機密の内部メンバーもスクリプトを使用できます。これはプライベートです。
ベストアンサー1
キーに改行文字が含まれていない場合は、単にパイプで接続できます。
# cryptsetup luksFormat foobar.img originalkey
WARNING!
========
This will overwrite data on foobar.img irrevocably.
Are you sure? (Type uppercase yes): YES
# cryptsetup luksAddKey foobar.img newkey < originalkey
残念ながら、cryptsetup
キーファイルの処理にはいくつかのモードがあり、改行文字などはそのモードによって異なります。特殊文字キーの場合、パイプは機能しません。
# cryptsetup luksAddKey foobar.img newkey < originalkey
No key available with this passphrase.
この場合、keyfileオプションが必要です。
# cryptsetup luksAddKey --key-file=originalkey foobar.img newkey
またはまだパイプを使用したい場合は、
# cryptsetup luksAddKey --key-file=- foobar.img newkey < originalkey
混乱していますか? 512文字以下のASCII専用キーを使用して印刷できない文字が含まれていない場合は、あいまいさを避けるため、ピンチで手動で入力できます。
可能であれば、このようなことは避けるべきです--password=xyz
。この情報は公開され、プロセスリスト、シェル履歴、その他の場所にあなたのパスワードが公開されることがあります。常に適切に制限された読み取り権限を持つパイプまたはファイルを使用してください。