【问题标题】:seamlessly automount ecryptfs using ssh key auth? [closed]使用 ssh 密钥身份验证无缝自动挂载 ecryptfs? [关闭]
【发布时间】:2018-06-08 14:57:36
【问题描述】:

有没有办法在通过 ssh 密钥登录且无需额外用户交互时自动挂载 ecryptfs 挂载?

例如,是否有任何 ssh 扩展程序告诉客户端使用其私钥解密一些远程内容,例如 ecryptfs passwd?

【问题讨论】:

    标签: ssh automount ecryptfs


    【解决方案1】:

    一个老帖子,但我找不到答案,所以我会发布我所做的。

    有可能,但没那么简单。你必须知道你在做什么,所以我只会发布指南,而不是复制/粘贴解决方案。

    在主机上:

    1. 授予writeunmounted $HOME 的权限
    2. encryptfs-mount-private 脚本复制到unmounted $HOME,并将LOGNAME 更改为接受参数(密码)
    3. 制作脚本(即 mySSHlogin)

      a) 将.XAuthorityunmounted $HOME 复制到某个公共位置(即/tmp

      b) 挂载 ecryptefs (2.),密码为 param 和 cd ~

      c) 在mounted $HOME 中备份.XAuthority

      d) 将.Xauthority 从公共位置移动到mounted $HOME

      e) 启动外壳

      f) 恢复mounted $HOME 中的原始.Xauthority 文件

    远程:

    1. 运行ssh,在主机上使用提供的密码执行该脚本 (3.)

    (gnome-terminal -x ssh -Y me@host -t /home/me/mySSHlogin somePassword)

    .Xauthority 留在unmounted $HOME 中会降低安全性(这可以通过移动而不是复制到 2. 中来解决,但xauth 会显示一个通知),但在本地网络上应该没问题。

    此外,通过 ssh 和直接在主机上进行的并发访问在某些情况下可能会显示出不可预测的情况(可以通过将 .Xauthority 从未安装到 mounted .Xauthority 来解决,这应该定期清理)。

    正如我所说,这些只是指导方针。 而且,一如既往,backupbackupbackup

    当然,如果您使用 ssh 密码和提供密码的sshpass,则所有这些都可以避免,因此您不必输入密码。

    【讨论】:

    • 这是非常不安全的,因为它将您的密码以纯文本形式存储在您的“远程”系统上。该问题要求实际的 SSH 密钥能够生成密码,因此它不会存储在任何一方。这必须是一种挑战-响应系统,例如mySSHlogin 包含一个挑战(可能是 4096 个随机字符的字符串)和“远程”系统上的一个脚本,该脚本使用 SSH 密钥对其进行签名。然后 mySSHlogin 将使用该签名作为 ecryptfs 密码。这个提议的问题是只有那个 SSH 密钥可以解锁 ecryptfs 目录。
    最近更新 更多