Terminal pogryzł człowieka: pass
Podczas gdy świat zachłysnął się mnogością i funkcjonalnością graficznych menedżerów haseł, w zaciszu terminala niepozorny pass skrywa nie mniejsze i nie gorsze możliwości. Bo czego tak naprawdę potrzebujemy aby mieć pod ręką nasze hasła? Bezpiecznego i zaszyfrowanego schowka oraz programu oferującego szybki podgląd i kopiowanie hasła do bufora. Pass stwarza warunki do właśnie takiej pracy.
Koncepcja pass jest na wskroś linuksowa. Wszystkie nasze działania przeprowadzane w terminalu odbywają się za pomocą kilku poleceń. To właśnie nimi dodamy, usuniemy, zmienimy lub skopiujemy hasło. Nasz wszystkim czuwa oczywiście GPG, dzięki któremu całość (~/.password-store) zostanie odpowiednio zaszyfrowana z użyciem naszego klucza. Tak, to wszystko – program jest przewidziany do konkretnego i jasno określonego zadania, nie oczekujmy zatem innych fajerwerków.
Jak używać pass? Zanim przystąpimy do powierzania mu naszych haseł, należy używać naszego klucza GPG:
gpg --list-keys
… lub wygenerować sobie nowy:
gpg --gen-key
Wtedy możemy przystąpić do stworzenia swojego schowka na hasła:
pass init identyfikator_gpg
Identyfikator to nic innego jak adres email jaki użyliśmy podczas tworzenia naszego klucza. Teraz pozostaje nam powrzucać do tak utworzonego sejfu nasze hasła:
pass insert Email/mojtajny@email.com
pass insert Bank/4837734682
pass insert Email/zapasowyemail@com.com
… i tak dalej. Gdyby zaszła taka konieczność, możemy poprosić program o wygenerowania dla nas hasła dla jakiegoś konta:
pass generate XMP/mojekonto@jabber.org 15
Po uzupełnieniu informacji możemy podejrzeć efekty naszej pracy.
~ $ pass show Password Store ├── Bank │ └── 4837734682 ├── Email │ ├── mojtajny@email.com │ └── zapasowyemail@com.com └── XMP └── mojekonto@jabber.org
Aby wyświetlić dowolne hasło wystarczy:
pass Email/mojtajny@email.com
Lub skopiować go do bufora (clipboard):
pass -c Email/mojtajny@email.com
Co jest piękne w tym projekcie, to to, że autor przewidział konwencjonalną manipulację danymi. Możemy zatem listować konkretne pozycje (pass ls nazwa), wyszukiwać (pass find nazwa), kasować (pass rm nazwa), kopiować i przenosić wpisy (pass mv/copy nazwa nazwa). Co więcej, możemy również „przegrepować” bazę (pass grep reguła), edytować (pass edit nazwa) i tak dalej.
Na tym nie kończy się poziom miodności tego prostego polecenia tekstowego. Co powiecie na utworzenie schowka na hasła jako repozytorium Git? (obsługa według obowiązujących prawideł, pass git push, pass git pull). Możliwości jest sporo i nawet jeżeli ktoś nie doceni ich z poziomu terminala, to zawsze można użyć jednego z wielu GUI (np. QtPass).
Kolejną dobra wiadomością jest to, że pass znajdziemy w repozytoriach niemal wszystkich dystrybucji.
Pojedyncze pliki z hasłami szyfrowane kluczem gpg i wszystko zachowane w strukturze katalogów. Co nam to daje? Możemy dowolnie manipulować nazwami, katalogami, grupować hasła, a klucza gpg potrzebujemy tylko by odczytać/zmienić hasło. Czym można prościej? Chyba tylko zachowyjąc wszystkie w jednym pliku. Uwielbiam takie rozwiązania. Pozdrowienia dla autora i oby więcej takich artykułów 🙂
pass insert Email/mojtajny@email.com
rozumiem ze w bash_history jest backup 😉
wystarczy poprzedzić polecenie spacją na początku i już nie będzie w bash_history 😉 Pzdr!