![如何在启动时使用 openSSH 进行磁盘加密(OpenSSH 与 Dropbear)](https://linux22.com/image/86174/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%97%B6%E4%BD%BF%E7%94%A8%20openSSH%20%E8%BF%9B%E8%A1%8C%E7%A3%81%E7%9B%98%E5%8A%A0%E5%AF%86%EF%BC%88OpenSSH%20%E4%B8%8E%20Dropbear%EF%BC%89.png)
基本设置:
- 操作系统:CentOS 7(64 位)
- Grub 2
- 带 ext4 的独立引导分区
- 两个磁盘分区上的 luks 加密 (aes-xts-plain64:sha512),这两个磁盘分区都需要在引导时通过密码解锁
- 解锁后两个分区均作为 raid1 btrfs 文件系统安装在/上
现在我正在寻找一种干净的策略来在启动时进行远程访问以解锁两个分区。
在 Raspberry Pi 2 上,我已经使用 Dropbear 来执行此操作,并且我发现的大多数线程似乎也喜欢在更大的系统中使用此选项。即使在更大的系统上,也没有人关心所需的引导加载程序资源。
问题:
根据我对 CentOS 7 Grub2(全新安装)的理解,我已经默认运行 OpenSSH 服务。如果 openSSH 和 dropbear 做同样的工作,为什么我需要安装 dropbear?
我是否应该能够为 grub 配置 openSSH 并粘贴命令:
/lib/cryptsetup/askpass “密码:” > /lib/cryptsetup/passfifo
直接通过 openSSH ?
答案1
来完成这个题目。这是我在 CentOS 上安装的 dropbear。
我使用了以下脚本和描述: https://github.com/dracut-crypt-ssh/dracut-crypt-ssh
以下安装方式2.1。
所有命令均以 root 身份执行。
- 须藤苏
- 百胜更新
- yum 安装 epel-release
- 百胜安装 vim
- 百胜安装 wget
- wget -O /etc/yum.repos.d/rbu-dracut-crypt-ssh-epel-7.repohttps://copr.fedorainfracloud.org/coprs/rbu/dracut-crypt-ssh/repo/epel-7/rbu-dracut-crypt-ssh-epel-7.repo
- 百胜安装 dracut-crypt-ssh
vim /etc/default/grub -> 更改行“GRUB_CMDLINE_LINUX”(通过在编辑器中按 i。可以更改文本)
旧行:
GRUB_CMDLINE_LINUX="crashkernel=auto rd.luks.uuid=luks-e0e5a45d-9773-428f- b0b4-79e85395f1e7 rd.luks.uuid=luks-c4d735fb-ce26-43ec-b9fe-2c48acded15c vconsole.font=latarcyrheb-sun16 vconsole.keymap=de rhgb Quiet"
新行:
GRUB_CMDLINE_LINUX="crashkernel=auto rd.neednet=1 ip =dhcp rd.luks.uuid=luks-e0e5a45d-9773-428f-b0b4-79e85395f1e7 rd.luks.uuid=luks-c4d735fb-ce26-43ec-b9fe-2c48acded15c vconsole.font=latarcyrheb-sun16 vconsole.keymap=de rhg安静"
始终通过命令“ESC -> :wq!”保存更改在编辑器中。vim /etc/dracut.conf.d/crypt-ssh.conf -> 更改端口和对authorized_keys的引用(再次按i
)取消推荐端口行并将 默认端口 222 更改为端口 22:
“# dropbear_port="222"” 更改为“dropbear_port="22"”
取消注释authorized_keys行并将路径:
“# dropbear_acl =“/root/.ssh/authorized_keys””更改为“dropbear_acl =“/keys/dropbear/authorized_keys””mkdir /键
- mkdir /keys/dropbear
vim /keys/dropbear/authorized_keys -> 添加公钥
在我的例子中,我通过运行 PuTTYgen 生成了一个密钥对,并通过 ssh 将公钥复制到编辑器。grub2-mkconfig --输出 /etc/grub2.cfg
- dracut--力
- 重启
- 使用程序“PuTTY”登录 Windows PC 上的启动 shell。
设置:
a. IP地址:服务器IP地址
B.端口:22
c。连接->数据->自动登录用户名:root
d.连接->SSH->身份验证->用于身份验证的私钥文件->Dropbear.ppk->点击打开按钮
应该显示如下内容:
使用用户名“root”。使用公钥“rsa-key-20160322”进行身份验证-sh-4.2#
- console_peek(出于某种原因,在 console_auth 之前始终需要此命令才能成功转发密码)。
- console_auth -> 密码: -> 输入加密设备的密码并按 Enter 键
解锁对我来说没有用,因为 crypttab 包含很多在启动时无法解锁的分区。
答案2
那么 dropbear 真的是启动时远程访问的正确且唯一的选择吗?
我对 dracut 做了一些额外的研究,它用于在 CentOS 上构建 initramfs 映像,它显示了选项“--sshkey”需要与模块加载选项结合使用“ssh-客户端”在 /etc/dracut.conf 中。
在我看来,好像已经有一个 ssh 客户端了,我不需要另外安装 dropbear。以前有人尝试过这个选项吗?有谁知道这方面的好教程吗?