如何将加密的 /home 移动到新计算机?

如何将加密的 /home 移动到新计算机?

您好,我有一台新笔记本,我想将我的家庭数据移动到新电脑上。

我认为有多种方法可以做到这一点

  • 将所有内容复制到外部硬盘并移回新电脑
  • 进行 Deja-Dup 备份,然后在新计算机上恢复
  • rsyc/通过 sshfs 移动到新电脑
  • ...?

我的问题是如何保留 /home 的当前 ecrypt 加密并使其在新计算机上正常工作。我该如何安装新计算机才能使用旧计算机中的加密主文件?

如果我使用 Deja-Dup,我是否需要担心旧机器上的电子加密内容,或者新安装是否只是对所有新内容进行加密?

答案1

好问题!我实际上经常这样做(每隔几个月)。为此,我使用同步复制全部将我的/home分区/目录从旧机器迁移到新机器。

首先,确保您已在新机器上安装并运行openssh-serverecryptfs-utils

sudo apt-get install openssh-server ecryptfs-utils

您可以在 root 用户的/root/.ssh/authorized_keys文件中安装公共 SSH 密钥。但我通常会在新机器上设置 root 密码。

sudo passwd

另外,在新机器上创建一个新用户,其名称和密码恰恰与旧机器上的名称和密码匹配。

sudo adduser YOURUSER

制作绝对确保 YOURUSER 当前未登录到新机器或旧机器。

现在,从旧机器上,以 root 身份将/home目录从旧机器 rsync 到新机器:

sudo rsync -aP /home/ NEW:/home/

最后,请确保新机器上的文件归 YOURUSER 所有:

sudo chown -R /home/.ecryptfs/YOURUSER /home/YOURUSER

就这样就行了!您应该能够正常登录到新机器并读取和写入数据!

全面披露:我是 Ubuntu 加密主目录功能的作者和维护者。

答案2

我最近必须做类似的任务,我发现达斯汀的回答非常有用。

我的场景是,我将我的安装从一个磁盘移动到另一个磁盘。我的安装有一个用户(我们称她为“偏执狂”),她的主目录是加密的,我想迁移这个用户,以便他们可以登录我的新安装。

我在附录中详细介绍了我如何完成这个过程。

但最终结果是,我的系统已经到了这样的地步:旧安装和新安装共享同一个 /home 分区。新安装的管理员用户主目录是 /home/admin。旧安装的偏执用户主目录是 /home/paranoid。

/home/paranoid 已加密。它具有以下内容:

/home/偏执狂#ls

访问您的私人数据.desktop -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop .ecryptfs -> /home/.ecryptfs/paranoid/.ecryptfs

.kde

。当地的

.私人-> /home/.ecryptfs/paranoid/.私人

自述文件.txt -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.txt

加密主页的所有神奇功能实际上都发生在 /home/.ecryptfs/ 中以用户命名的文件夹中

在我的例子中:

/home/.ecryptfs/paranoid# ls -la

加密文件系统

。私人的

所有用户的实际文件都加密存储在

/home/.ecryptfs/paranoid/.Private

配置数据在

/home/.ecryptfs/paranoid/.ecryptfs

看起来,迁移用户所需要做的就是设计一种情况:

  1. 新安装具有与旧安装中的用户同名的用户及其相同的密码。
  2. 新安装的 /home 文件夹中有 /home/.ecryptfs/ 的副本偏执狂/ 和 /home/偏执狂/
  3. 这两个目录中的文件均归用户所有偏执狂
  4. ecryptfs-utils 已安装

我们需要 1) 的情况,因为文件是以用户密码解锁的方式加密的。因此新安装的密码需要相同,这样它才能解密文件。

我们设置了 2),以便新安装中的用户的目录结构与旧安装中的相同

我们需要 3) 来实现这一点,以便用户对其主目录中的文件拥有读写权限。

我们需要4)以便系统可以对文件系统文件进行解密。

如何实现:

  1. 以“管理员”身份登录新安装并从现有安装的主分区挂载主目录时,将 /home/paraniod 文件夹重命名为 paranoid_old

    sudo mv /home/paranoid folder paranoid_old
    
  2. 将 /home/.ecryptfs/paranoid 重命名为 /home/.ecryptfs/paraonoid_old

    sudo mv /home/.ecryptfs/paranoid   /home/.ecryptfs/paraonoid_old
    

    以上两个步骤备份了偏执数据,因此它不会被步骤 3 破坏

  3. 在新机器上登录并创建一个名为 paranoid 的新用户,其密码与旧安装中的 paranoid 完全相同

    sudo adduser paranoid
    

这将在 /home
4 上创建一个新的 /home/paranoid 目录。将此 /home/paranoid 目录重命名为 /home/paranoid_new

    sudo mv /home/paranoid /home/paranoid_new

现在将备份带回来:

  1. 将 /home/paranoid_old 文件夹重命名为 paranoid

    sudo mv /home/paranoid_old /home/paranoid
    
  2. 将 /home/.ecryptfs/paranoid_old 重命名为 /home/.ecryptfs/paranoid

    sudo mv /home/.ecryptfs/paranoid_old    /home/.ecryptfs/paranoid
    
  3. 现在确保我们的新偏执用户拥有这些文件

    sudo chown paraniod:users -R /home/.ecryptfs/paranoid /home/paranoid
    

步骤 7) 可能是必要的,因为 - 即使 /home/.ecryptfs/paranoid 中的文件已经归名为“paranoid”的用户所有 - 这是现有安装中的 paranoid 用户。此用户在新安装中的 /etc/passwd 文件中的用户编号可能与旧安装中的不同。并且拥有文件的是用户编号 - 而不是用户名。因此,除非您在运行新安装时更改文件的所有者,否则文件可能归错误的“paranoid”所有。如果 paranoid 用户在新旧安装中的用户编号不同,那么在我们更改文件所有者后,paranoid 用户将无法登录旧安装,因为他们没有文件的权限。您可以通过编辑旧安装中的 /etc/passwd 文件来修复这种情况,为 paranoid 提供与新安装中相同的用户编号。请确保不要使用现有用户的编号。

8)安装 ecryptfs-utils sudo apt-get install ecryptfs-utils

此时您应该能够重新启动新安装并登录到 paranoid 的帐户并查看其迁移的主文件及其所有解密内容。/home/paranoid_new 可以被删除。

附录 1 我如何设置系统: 我在新磁盘上安装了升级版的 Kubuntu 版本,同时将现有安装保留在另一个磁盘上。现有安装的 /home 位于独立于根目录的单独分区 (/dev/mapper/kubuntu--vg-home_lv) 上。我在新驱动器上安装了升级版的 kubuntu,同时断开了其他驱动器的连接,并创建了一个管理员用户帐户(“admin”),其名称与现有安装上的任何帐户都不同。从 kubuntu 的实时实例启动时,我挂载了新旧磁盘,并将 [newdirveMountPoint]/home/admin 复制到 [oldinstalldriveMountPoint]/home/admin 然后我编辑了 [newdirveMountPoint]/etc/fstab,添加了一行,使其将现有驱动器挂载为主驱动器

/dev/mapper/kubuntu--vg-home_lv /home     ext4    errors=remount-ro 0       1

现在,当我以“管理员”身份启动新安装时,/home 将从与旧安装相同的分区读取数据。因此,现在有 /home/admin,它是新安装上的管理员用户的主目录。还有 /home/paranoid,它是旧安装上的偏执狂用户的主目录。我的新旧安装现在共享主目录。

相关内容