非対話型ecryptfsディレクトリの暗号化/復号化

非対話型ecryptfsディレクトリの暗号化/復号化

スクリプトでecryptfs Privateディレクトリを復号化できますか?

このタイプのアクティビティの私の基本的なユースケースは、リモートバックアップを実行することです。写真(またはその他の機密情報)を保存する暗号化されたプライベートディレクトリを持つマシン(privateboxと呼ばれる)があると想像してください。ログイン時にのみパスワードが復号されます。リモートコンピュータからprivateboxにログインし、ディレクトリを復号化して写真を追加し、再暗号化してログアウトするスクリプトを書くことができると想像してください。これらすべての操作にはユーザー対話ステップは必要ありません(クローンで実行することもできます)。個人ボックスのパスワードは、プレーンテキストやいかなる形でも個人ボックスに保存されません。そして暗号化されるので(アップデート中を除く)誰かがSDカードなどを入手しても保護されます。

これらのスクリプトは次のように動作します(私の考えでは):

  • プライベートボックスでパスワードで暗号化されたプライベートディレクトリを設定する
  • SSHを非対話式に使用できるように、ローカルコンピュータからprivateboxにSSHキーを設定します(cronはログイン可能)
  • そして何?パスワードを知っている場合は、個人用フォルダを非対話式に復号化する方法は?

ecryptfsはこれを許可しないように特別に設計されているようです(SSHキースプーフィングを使用しても、個人用ディレクトリを手動でマウントする必要があります)。

基本的に私が探しているのは、「ecryptfs-mount-private」の非対話型バージョンまたはこれと似ています(誰かが解決策を知っている場合)。それは次のとおりです。

%ecryptfs-mount-private -p $PASSPHRASE

パスワードを入力しなくてもパスワードを渡すことができます。

ecryptfsがこれを実行できない場合、選択肢を知っている人はいますか?ありがとうございます!

ベストアンサー1

わかりました、わかりました。 Xen2050のおかげでありがとう。まだあなたに投票するのに十分な評判を得ていません。

これは私に合ったbashスクリプトです。

#Set this variable to your mount passphrase. Ideally you'd get this from $1 input so that the actual value isn't stored in bash script. That would defeat the purpose.
mountphrase='YOURMOUNTPASSPHRASE' 

#Add tokens into user session keyring
printf "%s" "${mountphrase}" | ecryptfs-add-passphrase > tmp.txt

#Now get the signature from the output of the above command
sig=`tail -1 tmp.txt | awk '{print $6}' | sed 's/\[//g' | sed 's/\]//g'`
rm -f tmp.txt #Remove temp file

#Now perform the mount
sudo mount -t ecryptfs -o key=passphrase:passphrase_passwd=${mountphrase},no_sig_cache=yes,verbose=no,ecryptfs_sig=${sig},ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=no,ecryptfs_enable_filename_crypto=no /home/user/.Private /home/user/Private

これが機能するには、ファイル名の暗号化を無効にする必要がありました。ファイル名暗号化を使用しようとすると、インストール中にライブラリエラーが発生します。ファイル名の暗号化を実行したくない場合は、Private/ディレクトリを作成するときに以下を使用する必要があります。

ecryptfs-setup-private -n

これは今私にとって効果的です。

「なぜこのようなことをしますか?」と尋ねる一部の人に答えると、ログインするたびに私の個人データが常にインストールされることを望んでいません。実際のユーザーログインパスワードを使用せずにデータをインストールする簡単な方法があることを願っています。他の人とデータを共有したいと想像してください。彼らに私のパスワードを教えてください。マウントパスワードを使用すると、デフォルトでは、私のログインよりも安全性の低いマウントパスワードが得られます。これは、自動的にデータをマウントしてフレーズをどこかに保存したい場合にも役立ちます(おそらくデータロックを解除するためのキーとしてUSBスティックに保存します)。私はログインパスワードをプレーンテキストでどこにでも保存したくありません。ただし、これはデータが何であるかを知り、データ自体が自分のアカウントよりも非公開であることを知っている場合に最適なソリューションです。

おすすめ記事