UbuntuでUSBメモリを暗号化する

2022/07/13

Linux

t f B! P L

目的

UbuntuでUSBメモリをディスクごと暗号化したい(ファイル単位の暗号化ではなく)

cryptsetup

この手のツールはいくつもあるが、今回はcryptsetupを使う。

cryptsetupは、LUKS (Linux Unified Key Setup) という暗号化仕様に基づいた暗号化ユーティリティーツール。

sudo apt install cryptsetup

このツールの良いところ

  • aptで標準レポジトリからインストールできる
  • ディスク単位の暗号化ができる
  • 2回目以降のマウント時に、GUI上にパスワードを入力するプロンプトがでる

手順

注意点

  • フォーマットが必要なため、暗号化前のデータは実質的に削除されます。
  • 暗号化の失敗や、復号の失敗で、保存しているデータが救出できなくなる可能性もあります。

私はとりあえず暗号化しておきたいけど、最悪消えてもよいデータを保存しています。どんなデータだそれ。

Step 1 デバイス名を見つける

まずUSBメモリをぶっさす。
この時点で自動でマウントされますが、一旦アンマウントしておきます。
そして、以下のコマンドでメーカー名なりサイズを見てデバイスを探す。
私の場合は、/dev/sda1だった。

sudo fdisk -l

Step 2 暗号化

さっき見つけたデバイスをフォーマットします。
デバイスの内容は削除されます的なwarningがでるのでよく確認。
間違えて違うデバイスをフォーマットしないように。
ここでパスフレーズも設定します。

sudo cryptsetup luksFormat /dev/sda1

Step 3 フォーマット

次に以下のコマンドで暗号化したデバイスを開きます。

sudo cryptsetup open /dev/sda1 myusb

myusbのところは好きな名前でOKです。
/dev/mapper/myusbにデバイスがあることを確認します。

フォーマットができるようになっています。
とりあえずよく使うext4でフォーマットしておきます。

sudo mkfs.ext4 /dev/mapper/myusb

Step 4 マウント

任意のパスにマウント可能です。

sudo mount /dev/mapper/myusb <path-to-mount>

Step 5 アンマウント

sudo umount <path-to-mount> sudo cryptsetup close myusb

2回目以降

毎回openとかcloseするのめんどくさい。
しかしなんと、2回目以降はPCにUSBを挿した時点でパスフレーズ入力を求めるプロンプトがGUIで出てます。
そこでパスフレーズ認証ができれば自動でマウントしてファイルエクスプローラが立ち上がります。
そのためめんどうな手順なく使用可能です。

QooQ