我按照以下步骤挂载我的私人目录
root@pc:~# mount -t ecryptfs /testdata/ /testdata/ 密码: 选择密码: 1)aes:块大小 = 16;最小密钥大小 = 16;最大密钥大小 = 32 2)blowfish:块大小 = 8;最小密钥大小 = 16;最大密钥大小 = 56 3)des3_ede:块大小 = 8;最小密钥大小 = 24;最大密钥大小 = 24 4)twofish:块大小 = 16;最小密钥大小 = 16;最大密钥大小 = 32 5)cast6:块大小 = 16;最小密钥大小 = 16;最大密钥大小 = 32 6)cast5:块大小 = 8;最小密钥大小 = 5;最大密钥大小 = 16 选择[aes]: 选择密钥字节: 1)16 2)32 3)24 选择 [16]: 启用纯文本传递 (y/n) [n]: 启用文件名加密 (y/n) [n]: y 文件名加密密钥 (FNEK) 签名 [b9fc92f854a4c85b]: 尝试使用以下选项进行挂载: ecryptfs_unlink_sigs ecryptfs_fnek_sig=b9fc92f854a4c85b ecryptfs_key_bytes=16 ecryptfs_cipher=aes ecryptfs_sig=b9fc92f854a4c85b 警告:根据 [/root/.ecryptfs/sig-cache.txt] 的内容, 好像你从来没有用这个密钥挂载过 之前。这可能意味着你已经输入了 密码错误。 您是否要继续安装(是/否)?:是 您是否要将 sig [b9fc92f854a4c85b] 附加到 [/root/.ecryptfs/sig-cache.txt] 以避免将来出现此警告(是/否)?:是 已成功将新签名附加到用户签名缓存文件 已挂载 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
答案1
一旦执行上述命令,它会要求输入 FNEK。
Filename Encryption Key (FNEK) Signature [13e8b1bc6090e91d]:
有什么方法可以通过文件传递这个来自动化整个过程吗?
您忘记将要使用或之前使用过的 FNEK 签名添加ecryptfs_fnek_sig=
到选项中。我通过 mount 使用 ecryptfs,它不会要求我输入 FNEK,因为我已在命令中设置了选项。
答案2
执行以下脚本解决了我的问题。如果有更好的建议,请告诉我。
#!/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
请进行审查并让我知道您的意见。