Piszę skrypt, który tworzy archiwa projektów, a następnie tworzy ich archiwa 7z, aby ułatwić mi zapisywanie określonych wersji i przechowywanie zaszyfrowanych kopii zapasowych.
Po wygenerowaniu archiwów i przejściu do fazy szyfrowania, chciałbym zaszyfrować pliki jednym wywołaniem, gpg
jeśli to możliwe, aby użytkownik wprowadził hasło tylko raz. W przeciwnym razie musielibyśmy albo buforować hasło użytkownika w pamięci (czego naprawdę nie chciałbym robić), albo poprosić go o wprowadzenie i potwierdzenie hasła dla każdego zarchiwizowanego projektu (co jest gorsze).
Czy istnieje sposób na przekazanie wielu nazw plików, aby gpg
szyfrowały je wszystkie za jednym razem?
Jeśli spróbuję:
$ gpg --cipher-algo AES256 --compression-algo BZIP2 -c project1.7z project2.7z
... Widzę następujący błąd w powłoce:
usage: gpg [options] --symmetric [filename]
Czy istnieje sposób na zrobienie tego, co chcę osiągnąć?
Odpowiedzi:
Nie, nie ma.
Prawdopodobnie będziesz chciał przekazać hasło jedną z następujących opcji gpg (ta druga opcja byłaby najbezpieczniejsza):
źródło
Ponieważ GnuPG nie obsługuje tego bezpośrednio, sposobem na to byłoby dodanie kolejnej warstwy, np
tar
. Za pomocą .I wyodrębnić:
Zostaniesz z
project1.7z
iproject2.7z
. Skrypt może następnie zacząć od miejsca, w którym został przerwany.źródło
Jeśli chcesz wypróbować coś innego niż GPG, istnieją inne metody tworzenia kopii zapasowych szyfrowania wielu plików:
oryginalne źródło: http://www.obsd.hu/docs/Unix-backup-with-aes.txt
Sposób użycia: po prostu użyj „backup DIRECTORY” do szyfrowania i „deszyfruj DIRECTORY.tar.gz.aes”
źródło
Udało mi się dziś zrobić coś takiego:
Zmieniłem katalog na katalog zawierający pliki docelowe i uruchomiłem skrypt Bash, aby znaleźć wymagane nazwy_plików i wyświetlić je w pliku tekstowym, który wywołałem
found.txt
.Uruchomiłem skrypt Bash, prosząc gpg2 o odczytanie każdej nazwy pliku w pętli i do zmiennej pamięci, oraz w tej samej pętli, aby zaszyfrować go za pomocą mojego klucza podpisu i określając, że to do odczytu przeze mnie. gpg2 wyświetla wyskakujące okienko do wpisania hasła, które to okienko wyskakujące ma małe pole wyboru, w którym możesz zdecydować, aby hasło było aktywne dla sesji. Zła praktyka, ale nie taka zła, jeśli nie jesteś w sieci i wyłączasz się natychmiast po sesji szyfrowania.
Jedynym problemem było to, że trzeba było obsłużyć ay / n. Więc usiadłem z palcem na klawiszu Y i zaszyfrowałem 51 plików nos w mniej niż minutę.
Skrypty podano poniżej:
Skrypt „find” był plikiem o nazwie
FindFilesAndListtoTextfile.sh
:Skrypt szyfrujący nazywał się ReadFilenameAndEncrypt.sh:
Ma to być uruchamiane jako zwykły użytkownik:
Mam nadzieję że to pomoże. Nie wymyśliłem, jak uniknąć t / n.
źródło
Poniższe polecenie działa dla mnie, dopóki nie mam żadnych nazw plików ze spacjami.
Możesz także użyć polecenia find.
Na koniec, jeśli chcesz użyć pliku hasła, użyj:
źródło
Tak, istnieje prosty sposób:
źródło
echo „Wprowadź hasło:”
przeczytaj hasło
odnaleźć . -type f -exec gpg --passphrase $ hasło -c {} \;
Hmmmmmm GPG prosi z GraphicMessageBox hasło do każdego pliku.
Dlatego zdecydowałem się użyć CRYBULL (program do kryptografii, który stworzyłem) w C-ANSI. Możesz pobrać za darmo ze strony www.labolida.com
odnaleźć . -type f -exec crybull {} {} .cry $ hasło koduj \;
źródło