有没有办法在通过 ssh 密钥登录且无需额外用户交互的情况下自动挂载 ecryptfs 挂载?
例如,是否有任何 ssh 扩展告诉客户端使用其私钥解密一些远程内容,例如 ecryptfs passwd?
一个旧线程,但我找不到答案,所以我会发布我所做的。
这是可能的,但不是那么简单。你必须知道你在做什么,所以我只会发布指南,而不是复制/粘贴解决方案。
在主机上:
- 授予
write
unmounted
$HOME权限 encryptfs-mount-private
脚本复制到unmounted
$HOME,并将LOGNAME
更改为接受参数(密码)-
制作脚本(即mySSHlogin)这将
a) 将
.XAuthority
从unmounted
$HOME复制到某个公共位置(即/tmp
)b) 挂载加密 (2.),密码作为参数和
cd ~
c) 在
mounted
$HOME中备份.XAuthority
d) 将
.Xauthority
从公共位置移动到mounted
$HOMEe) 启动外壳
f) 恢复
mounted
$HOME中的原始.Xauthority
文件
在远程:
ssh
该可执行文件运行该脚本 (3.) 在主机上提供的密码
(gnome-terminal -x ssh -Y me@host -t /home/me/mySSHlogin somePassword
)
将.Xauthority
留在unmounted
$HOME中会在一定程度上损害安全性(可以通过移动而不是在 2. 中复制来解决,但xauth
显示通知比),但在本地网络上应该没问题。
此外,通过 ssh 和直接在主机上进行并发访问在某些情况下可能会显示不可预测性(通过将.Xauthority
从卸载附加到mounted
.Xauthority
来解决,这应该定期清理)。
正如我所说,这些只是指导方针。 而且,一如既往,backup
,backup
,backup
.
当然,如果您使用ssh的密码,并且sshpass
提供密码,则可以避免所有这些,因此您不必键入密码。