所以我有多个硬盘用相同的密码加密,而不必多次输入密码,我想将其设置为在启动后自动显示一个密码框,让我输入密码一次然后安装全部加密的硬盘,然后安全地从缓存/内存中删除密码。
能以某种方式做到这一点吗?如果无法通过 GUI 实现,那么可以通过脚本实现吗?我使用的是带 KDE 的 Debian 9.1。
答案1
该脚本有效:
read -s password
echo $password | sudo veracrypt --text --mount --stdin --non-interactive /dev/sdb /mount/drive_b
echo $password | sudo veracrypt --text --mount --stdin --non-interactive /dev/sdc /mount/drive_c
...etc
password=00000000000000000000
我不确定这有多安全但比使用 --password 选项更好因为它显示在ps
。
答案2
至少在 VeraCrypt 1.21 中,“自动挂载设备”功能仍然可用。
UI 中有一个可用的按钮,或者以下命令将要求输入一次密码/密钥文件/PIM,并自动挂载多个卷(如果存在):
"VeraCrypt.exe" /auto devices /history n /cache n /quit
答案3
在 TrueCrypt 中,这是可能的。例如,如果在登录时加载了 4 个卷,并且这些卷具有相同的密码,则只需在文本框中填写一次密码。显然,此功能已在 VeraCrypt 中被故意删除。我不明白为什么,因为如果您想避免这种行为,您可以为您的卷设置不同的密码。
我发现这非常不方便,所以尽管存在安全风险,我还是决定继续使用 TrueCrypt。
答案4
我所做的是在我的 PC 启动时运行一个 bat 文件,等待第二和第三个驱动器安装到我的系统上,然后使用命令行擦除缓存,然后您可以使用第三个程序来隐藏命令提示符(如果您愿意),例如:hstart.exe
批处理文件每十秒循环将变量加 1,如果达到 60(大约 600 秒),批处理文件就会关闭,因此它不会永远在后台运行。
文本DriveExists.txt
文件甚至不需要任何内容,它只是需要存在。
@echo off
echo this window will close when the H and J drives exists
set LoopCount=1
:waitLabel
IF not exist H:\DriveExists.txt (
timeout 10 /nobreak > nul
set /a LoopCount=%LoopCount%+1
if %LoopCount% equ 60 ( goto endOfScriptLabel )
goto waitLabel
)
echo past H
set /a LoopCount=0
:waitLabelTwo
IF not exist J:\DriveExists.txt (
timeout 10 /nobreak > nul
set /a LoopCount=%LoopCount%+1
if %LoopCount% equ 60 ( goto endOfScriptLabel )
goto waitLabelTwo
)
echo past J
REM the following if is only to indent the items run after mounting volumes
IF exist H:\DriveExists.txt (
REM other code removed for example.
cd C:\Program Files\VeraCrypt
veracrypt /w
)
:endOfScriptLabel
@echo on