web-dev-qa-db-ja.com

ecryptfsマウント手順の自動化

私はプライベートディレクトリをマウントする手順に従います

 root @ pc:〜#mount -t ecryptfs/testdata//testdata/
パスフレーズ:
 Select cipher:
 1)aes:blocksize = 16;最小キーサイズ= 16; max keysize = 32 
 2)blowfish:blocksize = 8;最小キーサイズ= 16; max keysize = 56 
 3)des3_ede:blocksize = 8;最小キーサイズ= 24; max keysize = 24 
 4)twofish:blocksize = 16;最小キーサイズ= 16; max keysize = 32 
 5)cast6:blocksize = 16;最小キーサイズ= 16;最大キーサイズ= 32 
 6)cast5:ブロックサイズ= 8;最小キーサイズ= 5; max keysize = 16 
 Selection [aes]:
 Select key bytes:
 1)16 
 2)32 
 3)24 
選択[16]:
プレーンテキストパススルーを有効にする(y/n)[n]:
ファイル名暗号化を有効にする(y/n)[n]:y 
ファイル名暗号化キー(FNEK)署名[b9fc92f854a4c85b]:
次のオプションを使用してマウントしようとしています: aes 
 ecryptfs_sig = b9fc92f854a4c85b 
警告:[/root/.ecryptfs/sig-cache.txt],
の内容に基づいて、このキーでマウントしたことがないように見えます
前。これは、
パスフレーズを間違って入力したことを意味する可能性があります。
 
マウントを続行しますか(はい/いいえ)? :yes 
将来この警告を回避するために、
 [/ root/.ecryptfs/sig-cache.txt] 
にsig [b9fc92f854a4c85b]を追加しますか(はい・いいえ)? :はい
新しいsigをユーザーsigキャッシュファイルに正常に追加しました
マウントされたeCryptfs 

プロセス全体を自動化するスクリプトを書きたいです。ファイルを使用してパスフレーズ、暗号、キーバイトなどを渡したいです。

私はecryptfs.7文書に基づいて以下のマウントコマンドを試しました

mount -t ecryptfs -o key=passphrase:passphrase_passwd_file=/home/testpc/key.txt,no_sig_cache,verbose,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_enable_filename=y,ecryptfs_passthrough=n,ecryptfs_enable_filename_crypto=y secure_folder1/ secure_folder1/

key.txtは

root@testpc:/home/testpc# cat key.txt 
passphrase_passwd=1234

上記のコマンドが実行されると、FNEKを要求します。

Filename Encryption Key (FNEK) Signature [13e8b1bc6090e91d]:

プロセス全体を自動化するためにこれをファイルに渡す方法はありますか? PCが起動すると、パスフレーズを要求されることはありません。

Ecryptfs-add-passphraseはここで助けになりますか?

Murali Marimekala、事前に感謝します

2
Murali

上記のコマンドが実行されると、FNEKを要求します。

Filename Encryption Key (FNEK) Signature [13e8b1bc6090e91d]:

プロセス全体を自動化するためにこれをファイルに渡す方法はありますか?

ecryptfs_fnek_sig=を、使用したい、または以前使用したFNEK署名付きのオプションに追加するのを忘れました。私はmountでecryptfsを使用していますが、コマンドにオプションが設定されているため、FNEKを要求しません。

0
LiveWireBT

私の問題を解決した以下のスクリプトを実装しました。より良い提案は、私に知らせてください。

#!/bin/bash
#Argument 1 will be the mountphrase
mountphrase=$1
echo $mountphrase 
echo "passphrase_passwd=${mountphrase}" > /home/testpc/key.txt

#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'`
echo $sig
rm -f tmp.txt #Remove temp file

#Now perform the mount
Sudo mount -t ecryptfs -o key=passphrase:passphrase_passwd_file=/home/testpc/key.txt,no_sig_cache,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_enable_filename=y,ecryptfs_passthrough=n,ecryptfs_enable_filename_crypto=y,ecryptfs_fnek_sig=${sig},ecryptfs_sig=${sig},ecryptfs_unlink_sigs /home/testpc/Ecryptfs/secure5 /home/testpc/Ecryptfs/secure5
rm -rf /home/testpc/key.txt

確認して、コメントをお知らせください。

0
Murali