Jak szyfrować git na moim serwerze?


12

Oto najbliższe, jakie uzyskałem: zainstalowałem gitolite w /Privatefolderze, używając ecryptfs-utils ( sudo apt-get install ecryptfs-utils adduser git ecryptfs-setup-privatenastępnie reszta konfigurowała gitolite za pomocą instalacji roota).

Działało dobrze, o ile ktoś był zalogowany jako użytkownik gitprzy użyciu hasła ( su gitużywanie roota nie działa). Ponieważ prywatny folder aktywuje się po zalogowaniu za pomocą hasła, a gitolite używa kluczy RSA (wymagane), prywatny folder jest ukryty, dlatego pojawia się błąd.

Czy istnieje sposób, aby zalogować się na serwerze po ponownym uruchomieniu, wpisać hasło i mieć dostęp do prywatnego folderu użytkownika git do czasu ponownego uruchomienia komputera?

A może istnieje prosty sposób na zaszyfrowanie folderu dla repozytoriów git?


Nie jestem pewny co masz na myśli. Pchanie i przeciąganie przez SSH jest już zaszyfrowane. Czy potrzebujesz szyfrowania poza tym?
jonescb

Czy su - gitdziała Jaki jest sens szyfrowania FS, jeśli chcesz, aby był zawsze dostępny, jeśli maszyna jest włączona? Czy ściśle ma chronić przed atakami offline?
Hank Gay

@jonescb szyfrowanie systemu plików

@Hank Gay: Tak. ataki offline to wszystko, co chcę zabezpieczyć tym. Powinien być zawsze dostępny, więc rozsądnie offline + zabezpieczanie użytkownika, który uzyskuje dostęp do zaszyfrowanych plików + używanie dobrego oprogramowania, które ma dostęp do wspomnianych plików, to naprawdę wszystko, co mogę zrobić. -edit- i su - gitniestety nie rozwiązałem.

może chcesz zamknąć inny wątek: unix.stackexchange.com/questions/10355/…
D4RIO

Odpowiedzi:


4

Musisz po prostu usunąć plik ~/.ecryptfs/auto-umount.

Ten plik jest flagą, którą pam_ecryptfs sprawdza przy wylogowaniu. Ten plik istnieje domyślnie podczas instalacji, ~/.ecryptfs/auto-mounttak że twój prywatny katalog jest automatycznie montowany i odmontowywany podczas logowania / wylogowywania. Ale każdy można usunąć niezależnie, aby zmienić to zachowanie. Cieszyć się!


2

Możesz użyć metody smudge / clean git filter; spowoduje to zaszyfrowanie zawartości repozytorium i odszyfrowanie go do pracy z działającym drzewem.

Zobacz https://gist.github.com/873637 .

Jednak nie będzie szyfrować nazw plików.


1

Przepraszamy, nie można opublikować jako komentarza ...

Może mógłbyś zamontować swój ssh poprzez sshfs i użyć wewnątrz niego plików?


git jest dość automatyczny. Nie sądzę, żebym mógł powiedzieć gitowi, aby wykonywał polecenia przez ssh przed / po zrobieniu swoich poleceń git

Miałem na myśli zamontować twój zdalny katalog jako lokalny katalog za pomocą sshfs, następnie zamontować zaszyfrowany folder wewnątrz tego z encfs, a następnie użyć w nim twojego folderu git. Git nie musi wiedzieć, co się dzieje.
solarc

1

Zastosowanie screen. po prostu utwórz ekran, su do użytkownika i zrób to, co musisz zrobić. Odłącz się od niego, używając Ctrl + A, d. Powinieneś być w stanie rozłączyć się bez zabijania procesu, aby ktoś był zalogowany przez cały czas.


0

Może pakowanie repozytorium w tar zaszyfrowanej GPG. Możliwe jest usunięcie klucza prywatnego z domu za każdym razem, więc Twoje repo będzie prawie niemożliwe do odkodowania. Za każdym razem, gdy się logujesz, zapisujesz klucz prywatny do domu, odszyfrowujesz repozytorium i go używasz.


0

Jeśli możesz wyłączyć moduł sesji pam_ecryptfs, punkty montowania ecryptfs nie zostaną odmontowane podczas wylogowywania, ale dotyczy to również wszystkich. Innym pomysłem jest użycie innego hasła niż twój login, aby zawinąć frazę montowania. W takim przypadku instalacja nie powiedzie się automatycznie przy logowaniu i dlatego nie powinna (nie będzie?) Odmontowywać podczas wylogowywania. Następnie możesz ręcznie zamontować ecryptfs i powinien on pozostać podłączony do następnego uruchomienia:

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.