在192.168.0.2如何挂载192.168.0.3:/dev/sda并执行cryptsetup luksOpen?
嘿,我来帮你搞定这个问题——你现在在192.168.0.2节点,要操作192.168.0.3上的加密/dev/sda,首先得明确一个关键点:不能直接把远程的加密块设备挂载到本地/mnt/sda,因为加密块设备本身没有可识别的文件系统,得先把远程块设备映射成本地可访问的设备,解密后再挂载解密后的逻辑设备。下面给你两种实用的方法:
方法一:SSH + Loop 设备(临时操作首选)
这种方法不需要在远程节点安装额外服务,适合临时应急操作:
- 先在本地创建一个FIFO管道,用来传输远程块设备的数据:
mkfifo /tmp/remote_sda - 后台启动SSH连接,把192.168.0.3上的/dev/sda数据通过管道传到本地:
ssh root@192.168.0.3 "dd if=/dev/sda" > /tmp/remote_sda & - 把这个FIFO映射成本地的Loop设备:
losetup /dev/loop0 /tmp/remote_sda - 现在就可以对本地的
/dev/loop0执行LUKS解密操作了:cryptsetup luksOpen /dev/loop0 my_encrypted_drive - 解密完成后,把解密后的逻辑设备挂载到
/mnt/sda:mount /dev/mapper/my_encrypted_drive /mnt/sda
清理操作(用完别忘了)
- 卸载挂载点:
umount /mnt/sda - 关闭LUKS映射:
cryptsetup luksClose my_encrypted_drive - 卸载Loop设备:
losetup -d /dev/loop0 - 终止后台的SSH+DD进程(可以用
ps aux | grep dd找到进程后kill) - 删除临时FIFO:
rm /tmp/remote_sda
方法二:NBD(网络块设备,适合频繁操作)
如果需要经常访问这个远程加密设备,NBD是更稳定高效的选择,需要在两端安装NBD工具:
远程节点(192.168.0.3)配置
- 安装NBD服务端:
Debian/Ubuntu:apt install nbd-server
CentOS/RHEL:yum install nbd-server - 编辑NBD配置文件
/etc/nbd-server/config,添加以下内容:[generic] user = root group = root [encrypted_sda] exportname = /dev/sda readonly = no authfile = /etc/nbd-server/allow - 创建允许访问的客户端列表,只让192.168.0.2连接:
echo "192.168.0.2" > /etc/nbd-server/allow - 重启并启用NBD服务:
systemctl restart nbd-serversystemctl enable nbd-server
本地节点(192.168.0.2)操作
- 安装NBD客户端:
Debian/Ubuntu:apt install nbd-client
CentOS/RHEL:yum install nbd-client - 连接远程NBD设备到本地:
nbd-client 192.168.0.3 /dev/nbd0 -name encrypted_sda - 对本地的
/dev/nbd0执行LUKS解密:cryptsetup luksOpen /dev/nbd0 my_encrypted_drive - 挂载解密后的逻辑设备到
/mnt/sda:mount /dev/mapper/my_encrypted_drive /mnt/sda
清理操作
- 卸载挂载点:
umount /mnt/sda - 关闭LUKS映射:
cryptsetup luksClose my_encrypted_drive - 断开NBD连接:
nbd-client -d /dev/nbd0
内容的提问来源于stack exchange,提问作者user58029
相关产品推荐
相关产品推荐

