无法通过 SSH 运行 cryptsetup?

无法通过 SSH 运行 cryptsetup?

我正在尝试直接通过 SSH 打开 LUKS 驱动器。

ssh root@XX "cryptsetup luksOpen /dev/sdb3 secure

但是,没有提示密码,它就卡住了。

debug1: Sending command: cryptsetup luksOpen /dev/sdb3 secure
debug2: channel 1: request exec confirm 1
debug2: callback done
debug2: channel 1: open confirm rwindow 0 rmax 32768
debug2: channel 1: rcvd adjust 2097152
debug2: channel_input_status_confirm: type 99 id 1
debug2: exec request accepted on channel 1

这是不可能的事情吗?

答案1

为了使提示起作用,您需要添加-t.

ssh -t root@host cryptsetup luksOpen /dev/thing luksthing

(如果您只是在密码“卡住”等待输入时键入密码,它也可以工作,但它会在您的本地终端中回显。)

或者,通过管道传递密码也足够有效:

echo -n 'password' | ssh root@host cryptsetup luksOpen /dev/thing luksthing

为了防止它泄漏到进程列表和命令历史记录中,最好将其放在文件中。

ssh root@host cryptsetup luksOpen /dev/thing luksthing < passwordfile

此时,您不妨使用真正随机的密钥文件,而不仅仅是简单的密码。

相关内容