Libsecret - przechowuj bezpiecznie hasła dla Gita w Linux Mint oraz Ubuntu
Nikt nie lubi wprowadzać loginu i hasło przy każdym pushu… na szczęście mamy libsecret jako git credential storage.
Gdy chcesz skorzystać z serwisów hostujących repozytoria gita takich jak GitLab lub GitHub musisz się zautoryzować. Git posiada wbudowany mechanizmy zwany credential helper, który umożliwia wybranie sposobu przechowywania hasła. Od razu po instalacji mamy do dyspozycji 2 opcje, ale nie jesteśmy do nich ograniczeni - można doinstalowywać rozwiązania firm trzecich.
Cache credential helper (wbudowany)
Cache jest uznawany za bezpieczny, ponieważ trzyma dane jedynie w pamięci RAM. Jest to akceptowalne dla bezpieczeństwa,
jednak wygoda użytkowania pozostawia wiele do życzenia - za każdy razem, gdy zaczynasz nową sesję (np. po restarcie komputera), musisz wprowadzić credentiale ponownie.
Pamięć jest czyszczona domyślnie po 900 sekundach (15 minut), ale można wartość tę zmienić za pomocą parametru timeout
.
Jeżeli z jakiegoś powodu nie chcesz nic instalować, użyj przynajmniej cache, zawsze to jakieś odciążenie :)
Oficjalna dokumentacja - git-scm.com/docs/git-credential-cache
Store credential helper (wbudowany)
Store trzyma login i hasło w… zwykłym pliku tekstowym! Jest to uznawane za niebezpieczne, korzystaj więc z tej opcji wyłącznie, gdy nie zależy Ci na koncie, z którego korzystasz np. jeżeli stworzyłeś konto jedynie dla warsztatów :)
Oficjalna dokumentacja - git-scm.com/docs/git-credential-store
Git Credential Manager for Mac and Linux (autorstwa Microsoft)
Użytkownicy Windowsa są zaznajomieni z wygodnym toolem Git Credential Manager for Windows, który jest zintegrowany z Windowsowym narzędziem do przechowywania credentiali (wbudowanym na poziomie OS, dostępnym z panelu sterowania). Manager ten może być zainstalowany w trakcie instalacji Gita (wizard instalacyjny posiada checkbox do zaznaczenia). A niedawno Microsoft ogłosił wydanie toola… Git Credential Manager for Mac and Linux. Byłem pozytywnie zaskoczony, niestety tylko do momentu gdy spróbowałem użyć go na moim Linux Mint 19 Tara. Instalacja się powiodła (choć nie obyło się bez problemów), lecz próba użycia skończyła się z błędem:
Otworzyłem Microsoftowi issue na githubie i po dziś dzień nie otrzymałem żadnej odpowiedzi (a minęło ponad pół roku). Taki sam błąd zgłosił również użytkownik zwykłego Ubuntu, w wersji 18.04 oraz 19.04, więc rozwiązanie to nie działa zarówno w Linux Mint, jak i w Ubuntu.
Oficjalna dokumentacja - github.com/Microsoft/Git-Credential-Manager-for-Mac-and-Linux
Libsecret git credential storage (autorstwa GNOME)
Do niedawna najlepszym sposobem na przechowywanie credentiali w Linuxie był GNOME Keyring (libgnome-keyring), ale ze względu na to, że rozwiązanie to jest silnie związane z GNOME, jest przestarzałe od stycznia 2014 roku.
Dla wersji Gita 2.11+ powinieneś użyć credential helpera bazującego na rozwiązaniu libsecret. Instalacja i konfiguracja wymaga jedynie 4 poleceń w bashu :)
To wszystko, następnym razem, gdy zostaniesz poproszony o login i hasło, będzie to ostatni raz na tym urządzeniu :)
Oficjalna dokumentacja - wiki.gnome.org/Projects/Libsecret
Artykuł ten przetłumaczyłem z mojego anglojęzycznego bloga - SoftwareDeveloper.Blog - Libsecret - remember Git credentials in Linux Mint and Ubuntu securely.