GNU/Linux >> Linux の 問題 >  >> Linux

Linux – USBスティックの最初のパーティションの前にスペースをLuksキーとして使用しますか?

暗号化されたluksルートパーティション(暗号化されていないブート)とパスフレーズを備えたarch linuxを使用しています。
これで、USBに書き込まれたキーファイル(3072バイト)ができました-次のように貼り付けてください:

sudo dd if=tempKeyFile.bin of=/dev/sdd bs=512 seek=1 count=6

追加パスとしても設定

sudo cryptsetup luksAddKey /dev/sdb6 tempKeyFile.bin

手動でパーティションを開くと:

sudo cryptsetup --key-file tempKeyFile.bin open /dev/sdb6 luks_root

すべてが機能し、パーティションがマップされ、マウントできるようになります。
これで、grub.cfgのkernel-parameter-lineが作成されました。 次のようになります:

linux /vmlinuz-linux root=UUID=$UUID_OF_luks_root$ rw cryptdevice=UUID=$UUID_OF_sdb6$:luks_root cryptkey=/dev/sdd:1:6

しかし、起動すると、次のエラーが発生します:

No key available with this passphrase.
Invalid Keyfile. Reverting to passphrase.

私はすでに1ではなくオフセット2を試しましたが、同じ結果になりました。キーファイルが見つからない/読み取れなかったとは言われていないことに気づきましたが、正しくありませんでした。

luksキーファイルを保存するこの方法に関するドキュメントはほとんどないようです。 Arch-wikiはそれについて言及していますが、ごく簡単に言えば、私は準拠しているように見えるので、それは可能であるはずだと思います。

私のmkinitcpio.confで モジュール、バイナリ、ファイルが空で、次のように設定しました:

HOOKS=(base udev autodetect keyboard modconf block encrypt filesystems fsck)

したがって、ブロックは暗号化の直前です。

ここでの問題は何ですか?

承認された回答:

ArchLinux暗号化フックから(/lib/initcpio/hooks/encrypt ):

*)
    # Read raw data from the block device
    # ckarg1 is numeric: ckarg1=offset, ckarg2=length
    dd if="$resolved" of="$ckeyfile" bs=1 skip="$ckarg1" count="$ckarg2" >/dev/null 2>&1
    ;;

したがって、rawブロックデバイスからのキーの読み取りをサポートしますが、(デフォルトの512ではなく)1のブロックサイズを使用するため、機能させるには値に512を掛ける必要があります。

したがって、cryptkey=/dev/sdd:1:6の代わりに cryptkey=/dev/sdd:512:3072を試してください 。


Linux
  1. 「cat」コマンドを使用してLinuxパーティションをバックアップまたはクローンする方法

  2. LinuxでDM-CryptLUKSを使用してパーティションを暗号化する方法

  3. dfおよびduコマンドを使用してLinuxのディスク容量を確認する

  1. LUKSの構成:Linux Unified Key Setup

  2. Magic SysRq Key を使用した Linux の安全な再起動

  3. dd を使用してネットワーク経由で Linux ディスク パーティションのクローンを作成する方法

  1. Linux – BIOSを備えた32ビットシステムにGptを使用してインストールしますか?

  2. Linux / UNIX :fdisk を使用して拡張パーティションを作成する方法

  3. Python for Linux を使用したキー押下イベントのシミュレート