如何在服务器上加密git?


12

这是我得到的最接近的东西:我/Private使用将该文件夹安装了gitolite ecryptfs-utilssudo apt-get install ecryptfs-utils adduser git ecryptfs-setup-private然后其余的使用root安装程序配置了gitolite)。

只要有人git使用密码以用户身份登录(su git使用root无效),它就可以正常工作。由于专用文件夹是通过使用密码登录激活的,并且gitolite使用RSA密钥(必需),因此专用文件夹是隐藏的,因此会发生错误。

重新启动后,是否可以通过某种方式登录到服务器,输入密码并使git用户专用文件夹可用,直到下次计算机重新启动为止?

或者,也许有一种简单的方法来加密git存储库的文件夹?


我不确定你是什么意思。推和拉SSH已被加密。您还需要加密吗?
jonescb

su - git工作吗?另外,如果要在机器开机时始终保持可用状态,则加密FS有什么意义?是否严格防止离线攻击?
汉克·盖伊

@jonescb文件系统加密

@汉克·盖伊:是的。我想以此来保护离线攻击。它应该始终可用,因此可以合理地脱机+保护访问加密文件的用户+使用访问该文件的良好软件真的是我所能做的。-edit-,su - git不幸的是没有解决。

:也许你想关闭其他线程unix.stackexchange.com/questions/10355/...
D4RIO

Answers:


4

您只需要删除文件~/.ecryptfs/auto-umount

该文件是pam_ecryptfs在注销时检查的标志。该文件在安装时默认情况下与一起存在~/.ecryptfs/auto-mount,因此您的私有目录会在登录/注销时自动挂载和卸载。但是每个都可以独立删除以更改该行为。请享用!



1

抱歉,不能发表评论...

也许您可以通过sshfs挂载ssh并在其中使用encfs?


git是非常自动的。我认为我不能告诉git在执行git之前/之后通过ssh执行命令

我的意思是使用sshfs将远程目录安装为本地目录,然后使用encfs将加密目录安装在其中,然后在其中使用git文件夹。Git不需要知道发生了什么。
solarc 2011年

1

使用screen。只需创建一个屏幕,su进入用户并执行您需要做的事情。通过使用Ctrl + A,d分离它。然后,您应该能够断开连接而不会终止该进程,因此始终有人登录。


0

也许将您的仓库存储在GPG加密的tar中。每次都可以从家中删除私钥,因此您的存储库几乎是不可解密的。每次登录时,您都将私钥写入家中,解密并使用它。


0

如果您可以禁用pam_ecryptfs会话模块,那么注销时不会卸载ecryptfs挂载点,但这也会影响到每个人。另一个想法是使用与登录名不同的密码来包装您的安装相位。在这种情况下,它将无法在登录时自动安装,因此不应(不会?)在注销时卸载。然后,您可以手动挂载ecryptfs,它应该保持挂载状态直到下次重新启动:

ecryptfs-umount-private
ecryptfs-rewrap-passphrase .ecryptfs/wrapped-passphrase
ecryptfs-mount-private

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.