0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

セキュアサーバに、なりたいな「ハイ!rclone crypt」②rcloneで暗号化フォルダを作る

Last updated at Posted at 2025-12-20

📚 シリーズ目次

本シリーズは、作業の一部で Linux Mint 22.2 Cinnamon Edition を使用します。
Windows 11 での作業手順も併記しています。)

1. はじめに

前回の記事では、AndroidスマホのTermuxからQEMUを使用することで、Androidの制限から開放された(はずの)Debianを起動することができました。マトリョーシカ状態なので、パフォーマンス面が心配ではありますが。今回は、スマホのSDカード上に暗号化フォルダを作成して、Debianから透過的にアクセスできる環境を構築します。

本記事では、非rootのスマホに仮想マシンを導入し、Android OS上でネイティブなLinuxサーバを稼働させることを目指します。

2. Debianの運用について

2.1 GUIは使わないの?

以前の記事でCore 2 Duo搭載機をDebianサーバにした際はGUIもセットアップしていましたが、サーバの構築にも運用にもGUIは無用だな…と感じた次第。加えて、非rootのスマホではKVMが使用できないため、実用的な速度ではGUIが描画されない模様。本記事は、GUIの運用をばっさりと切り捨てた内容となっていますw

2.2 暗号化フォルダのアクセス

シンボリックリンクでTermux環境内に配置したフォルダを、SFTP経由でDebian環境にマウントする計画です。メディアフォルダにもアクセスできるようにします。

3. Debianのセットアップ

3.1 Debianの起動

では、前回の続きです。まずは、PCのターミナルからTermuxに接続してください。

Linux PC
ssh termux-ssh

接続できたら、以下のコマンドでDebianを起動します。Debianが起動してログインプロンプトが表示されたら、root でログインしてください。

Termux
cd ~/qemu/debian-arm64
qemu-system-aarch64 \
  -machine virt \
  -cpu cortex-a55 \
  -m 1024 \
  -smp 2 \
  -bios /data/data/com.termux/files/usr/share/qemu/edk2-aarch64-code.fd \
  -drive if=none,file=debian-13-nocloud-arm64.qcow2,id=hd0,format=qcow2 \
  -device virtio-blk-device,drive=hd0 \
  -netdev user,id=net0,hostfwd=tcp::8122-:22,hostfwd=tcp::8443-:443 \
  -device virtio-net,netdev=net0 \
  -nographic

3.2 SSH接続の準備

root でログインしたら、パッケージを更新してOpenSSHサーバをインストールします。以下のコマンドを実行してください。

Debian
apt update
apt upgrade
apt install openssh-server

続いて、SSH接続用のユーザを作成します。以下のコマンドで作成してください。作成後に、ユーザをsudoグループに追加します。

Debian
adduser --shell /bin/bash --gecos "Debian,,," debian
usermod -aG sudo debian

作成したユーザにSSH鍵認証を設定します。以下のコマンドで authorized_keys ファイルを作成してください。PCで作成した id_ed25519.pub をテキストエディタで開いて、中身の文字列をまるっと authorized_keys にコピペで追加します。

Debian
mkdir /home/debian/.ssh
nano /home/debian/.ssh/authorized_keys

作成したファイルとフォルダは、所有者が root になっているため変更します。以下のコマンドで所有者を変更してください。

Debian
chown -R debian:debian /home/debian/.ssh

3.3 PCからの接続

PC側のSSHクライアント設定ファイルに、Debian接続用の設定を追加します。config ファイルを開いて、以下の項目を追加してください。

Linux PC ~/.ssh/config
Host termux-qemu
  HostName 192.168.x.x
  User debian
  Port 8122
  IdentityFile ~/.ssh/id_ed25519

Windows環境では C:\Users\ユーザ名\.ssh\config に追加してください。

PCで新しくターミナルを開いて、以下のコマンドでDebianに接続します。

Linux PC
ssh termux-qemu

接続できたら、Debianのホスト名を変更してみましょう。問題ないようであれば、Debianを一旦シャットダウンします。

Debian
sudo hostnamectl set-hostname Redmi-12-5G
sudo poweroff

3.4 QEMUの起動設定

Termuxの起動時にDebianも起動するようにします。Termuxに接続して、.bashrc に以下を追加してください。DebianがシャットダウンするとTermuxも終了します。

Termux
nano ~/.bashrc
Termux ~/.bashrc
  if [[ ! $SSH_CONNECTION ]]; then
    termux-wake-lock
    sshd
+   cd ~/qemu/debian-arm64
+   qemu-system-aarch64 \
+     -machine virt \
+     -cpu cortex-a55 \
+     -m 1024 \
+     -smp 2 \
+     -bios /data/data/com.termux/files/usr/share/qemu/edk2-aarch64-code.fd \
+     -drive if=none,file=debian-13-nocloud-arm64.qcow2,id=hd0,format=qcow2 \
+     -device virtio-blk-device,drive=hd0 \
+     -netdev user,id=net0,hostfwd=tcp::8122-:22,hostfwd=tcp::8443-:443 \
+     -device virtio-net,netdev=net0 \
+     -nographic
+   exit
  fi

4. 暗号化フォルダのマウント

4.1 シンボリックリンクの作成

暗号化フォルダのマウントに先立って、Termux環境内にシンボリックリンクを作成します。Termuxに接続して以下のコマンドを実行すると、SDカードと内部ストレージの共有フォルダへのアクセスができるようになります。

Termux
termux-setup-storage

コマンドを実行すると、~/storage 配下に以下のシンボリックリンクが作成されます。

リンク名 リンク先
external-1 /storage/xxxx-xxxx/Android/data/com.termux/files
shared /storage/emulated/0
dcim /storage/emulated/0/DCIM
downloads /storage/emulated/0/Download
movies /storage/emulated/0/Movies
music /storage/emulated/0/Music
pictures /storage/emulated/0/Pictures

続いて、SDカードのルートディレクトリへのリンクを ~/storage 配下に作成します。まずは、SDカードのマウントポイント(/storage/xxxx-xxxx の部分)を確認します。以下のコマンドを実行してください。

Termux
ls -l ~/storage/external-1

マウントポイントが確認できたら、シンボリックリンクを作成します。

Termux
ln -s /storage/xxxx-xxxx ~/storage/sdcard

スマホのOSによっては、SDカードのアクセスがアプリ専用領域のみに制限されるものがあります。この場合は以下のシンボリックリンクで対応ください。

Termux
ln -s ~/storage/external-1 ~/storage/sdcard

シンボリックリンクが作成できたら、暗号化データ用のフォルダを作成します。

Termux
mkdir ~/storage/sdcard/.secure

4.2 SSH鍵認証の設定

それでは、Debianを再度起動して接続してください。DebianからTermuxに接続するための設定を行います。以下のコマンドでSSH認証用の鍵ペアを作成します。

Debian
ssh-keygen -t ed25519 -C "$(hostname)"

鍵ペアが生成できたら、公開鍵の中身を cat コマンドで確認します。

Debian
cat ~/.ssh/id_ed25519.pub

公開鍵の中身の文字列を、Termuxの authorized_keys にコピペで追加します。

Termux
nano ~/.ssh/authorized_keys

4.3 rcloneのセットアップ

続いて、rcloneのセットアップです。以下のコマンドで必要なパッケージをインストールしてください。フォルダのアクセス権に www-data を設定する都合により、Apacheを先行でインストールしています。

Debian
sudo apt install fuse
sudo apt install rclone
sudo apt install apache2

/mnt 配下にマウント用のフォルダを作成します。

Debian
sudo mkdir /mnt/shared
sudo mkdir /mnt/sdcard
sudo mkdir /mnt/secure

以下のコマンドでrcloneのリモートを作成します。n) New remote で以下の2つを作成してください。設定は対話式で行います。

Debian
sudo rclone config
Debian New remote [termux-sftp]
- type: sftp
- host: 10.0.2.2
- user: u0axxx
- port: 8022
- key_file: /home/debian/.ssh/id_ed25519
Debian New remote [termux-secure]
- type: crypt
- remote: termux-sftp:storage/sdcard/.secure
- password: *** ENCRYPTED ***

4.4 リモートのマウント

次回以降の記事ではHTTPS接続を行うので、所有者以外のマウントフォルダアクセスを許可する必要があります。設定ファイルを以下のように修正します。

Debian
sudo nano /etc/fuse.conf
Debian /etc/fuse.conf
- #user_allow_other
+ user_allow_other

設定ファイルが修正できたら、以下のコマンドでマウントします。--uid 1000debian ユーザ、--gid 33www-data グループを指しています。環境によっては異なる場合があるので、適宜確認してください。

Debian
sudo rclone mount termux-sftp:storage/shared /mnt/shared \
  --uid 1000 \
  --gid 33 \
  --umask 002 \
  --allow-other \
  --vfs-cache-mode writes \
  --daemon
sudo rclone mount termux-sftp:storage/sdcard /mnt/sdcard \
  --uid 1000 \
  --gid 33 \
  --umask 002 \
  --allow-other \
  --vfs-cache-mode writes \
  --daemon
sudo rclone mount termux-secure: /mnt/secure \
  --uid 1000 \
  --gid 33 \
  --umask 002 \
  --allow-other \
  --vfs-cache-mode writes \
  --daemon

4.5 マウントの確認

Debian上のマウントが機能していることを確認します。以下のコマンドでDebianの /mnt をPCの ~/mnt にマウントしてください。

Linux PC
mkdir ~/mnt
sshfs termux-qemu:/mnt ~/mnt

Windows環境での確認には「WinSCP」がおすすめです。

~/mnt/secure にファイルやフォルダを放り込むと、~/mnt/sdcard/.secure に暗号化されたファイルとフォルダが現れました。意図した通りの動作で顔がニヤけますw

Screenshot from 2025-12-20 19-20-15.png

Screenshot from 2025-12-20 19-48-38.png

5. おわりに

作業中はLinux Mintのターミナルからあっちこっちにアクセスするので、どの環境に接続しているのかを確認してコマンド実行していました。再セットアップ時に迷わないように、コードブロックのタイトルに環境名を色分けして記載しておきます。


◀️ 前の記事 次の記事 ▶️
セキュアサーバに、なりたいな「ハイ!rclone crypt」①QEMUでDebianを動かしてみる セキュアサーバに、なりたいな「ハイ!rclone crypt」③HTTPSサーバを構築してみる
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?