| GIT-CRYPT(1) | git-crypt | GIT-CRYPT(1) |
نام (NAME)
git-crypt - رمزنگاری شفاف فایلها در گیت
خلاصه دستور (SYNOPSIS)
git-crypt [OPTIONS] COMMAND [ARGS...]
دستورهای متداول (COMMON COMMANDS)
git-crypt init
git-crypt status
git-crypt lock
دستورهای GPG (GPG COMMANDS)
git-crypt add-gpg-user GPG_USER_ID
git-crypt unlock
دستورهای کلید متقارن (SYMMETRIC KEY COMMANDS)
git-crypt export-key OUTPUT_KEY_FILE
git-crypt unlock KEY_FILE
توضیحات (DESCRIPTION)
دستور git-crypt امکان رمزنگاری و رمزگشایی شفاف فایلها را در یک مخزن گیت فراهم میکند. فایلهایی که برای محافظت انتخاب میکنید هنگام کامیت شدن رمزنگاری شده و هنگام بازبینی (checkout) رمزگشایی میشوند. git-crypt به شما امکان میدهد مخزنی شامل ترکیبی از محتوای عمومی و خصوصی را آزادانه به اشتراک بگذارید. git-crypt بهگونهای منعطف سازگار میشود که توسعهدهندگان بدون کلید مخفی همچنان میتوانند مخزنی با فایلهای رمزنگاریشده را کلون کرده و تغییرات خود را کامیت کنند. این قابلیت به شما اجازه میدهد اطلاعات محرمانه خود (مانند کلیدها یا گذرواژهها) را بدون نیاز به قفل کردن کل مخزن، در همان مخزن و کنار کدهای خود ذخیره نمایید.
دستورها (COMMANDS)
دستور git-crypt از نظر منطقی به چندین زیردستور تقسیم شده است که کارهای مجزایی انجام میدهند. هر زیردستور و آرگومانهای آن در ادامه توضیح داده شدهاند. توجه داشته باشید که آرگومانها و گزینههای مربوط به زیردستورها باید در خط فرمان پس از نام زیردستور مشخص شوند.
init [OPTIONS]
گزینههای زیر پشتیبانی میشوند:
-k KEY_NAME, --key-name KEY_NAME
status [OPTIONS]
گزینههای زیر پشتیبانی میشوند:
-e
-u
-f, --fix
add-gpg-user [OPTIONS] GPG_USER_ID...
GPG_USER_ID میتواند یک شناسه کلید، یک اثرانگشت کامل، یک نشانی ایمیل یا هر چیز دیگری باشد که یک کلید عمومی را بهصورت یکتا برای GPG مشخص کند (بخش "HOW TO SPECIFY A USER ID" در صفحه راهنمای gpg(1) را ببینید).
گزینههای زیر پشتیبانی میشوند:
-k KEY_NAME, --key-name KEY_NAME
-n, --no-commit
--trusted
بدون این گزینه، git-crypt از همان مدل اعتماد GPG استفاده میکند که بهطور پیشفرض مبتنی بر شبکه اعتماد (Web of Trust) است. تحت این مدل، git-crypt کلیدهای GPG را که فاقد امضاهای مورد اعتماد باشند رد خواهد کرد.
اگر نمیخواهید از شبکه اعتماد استفاده کنید، میتوانید با تنظیم گزینه trust-model در فایل ~/.gnupg/gpg.conf مدل اعتماد GPG را تغییر دهید (صفحه راهنمای gpg(1) را ببینید)، یا در هر مورد بهطور جداگانه از گزینه --trusted در دستور add-gpg-user استفاده نمایید.
unlock [KEY_FILE...]
این دستور هیچ گزینهای نمیپذیرد.
export-key [OPTIONS] FILENAME
گزینههای زیر پشتیبانی میشوند:
-k KEY_NAME, --key-name KEY_NAME
help [COMMAND]
version
استفاده از GIT-CRYPT (USING GIT-CRYPT)
ابتدا، با اجرای دستور git-crypt init یک مخزن را برای استفاده از git-crypt آماده میکنید.
سپس، با ایجاد یک فایل gitattributes(5) فایلهایی را که میخواهید رمزنگاری شوند مشخص مینمایید. به هر فایلی که میخواهید رمزنگاری شود باید مشخصههای "filter=git-crypt diff=git-crypt" اختصاص داده شود. برای مثال:
secretfile filter=git-crypt diff=git-crypt *.key filter=git-crypt diff=git-crypt
همانند یک فایل .gitignore، فایلهای .gitattributes میتوانند با الگوهای عام (wildcards) مطابقت داشته باشند و باید در مخزن کامیت شوند. مطمئن شوید که به اشتباه خود فایل .gitattributes (یا سایر فایلهای گیت نظیر .gitignore یا .gitmodules) را رمزنگاری نکنید. حتماً اطمینان حاصل کنید که قوانین .gitattributes شما پیش از افزودن فایلهای حساس مستقر شده باشند، در غیر این صورت آن فایلها رمزنگاری نخواهند شد!
برای به اشتراک گذاشتن مخزن با دیگران (یا با خودتان) با استفاده از GPG، این دستور را اجرا کنید:
git-crypt add-gpg-user GPG_USER_ID
شناسه GPG_USER_ID میتواند یک شناسه کلید، یک اثرانگشت کامل، یک نشانی ایمیل یا هر چیز دیگری باشد که یک کلید عمومی را بهطور یکتا برای GPG مشخص کند. توجه: git-crypt add-gpg-user یک فایل کلید رمزنگاریشده با GPG را در دایرکتوری .git-crypt در ریشه مخزن شما افزوده و کامیت میکند.
در روشی دیگر، میتوانید یک کلید مخفی متقارن را برونبری کنید، که باید آن را با روشی امن به همکاران برسانید (نیازی به GPG نیست و هیچ فایلی به مخزن شما افزوده نمیشود):
git-crypt export-key /path/to/key
پس از کلون کردن مخزنی با فایلهای رمزنگاریشده، با استفاده از GPG قفل آن را باز کنید:
git-crypt unlock
یا با یک کلید متقارن:
git-crypt unlock /path/to/key
این تمام کاری است که باید انجام دهید - پس از راهاندازی git-crypt (چه با git-crypt init و چه با git-crypt unlock)، میتوانید طبق روال معمول از git استفاده کنید - رمزنگاری و رمزگشایی بهصورت شفاف انجام میشوند.
فایل GITATTRIBUTES. (THE .GITATTRIBUTES FILE)
فایل .gitattributes در gitattributes(5) مستند شده است. قالب الگوی فایل مشابه قالب بهکاررفته در .gitignore، همانگونه که در gitignore(5) مستند شده، میباشد؛ با این تفاوت که تنها مشخص کردن یک دایرکتوری (مثلاً "/dir/") برای رمزنگاری همه فایلهای درون آن کافی نیست.
همچنین توجه داشته باشید که الگوی "dir/*" با فایلهای واقع در زیردایرکتوریهای dir/ مطابقت پیدا نمیکند. برای رمزنگاری کل زیرشاخه dir/، عبارت زیر را در dir/.gitattributes قرار دهید:
* filter=git-crypt diff=git-crypt .gitattributes !filter !diff
الگوی دوم برای اطمینان از اینکه خود .gitattributes رمزنگاری نشود، ضروری است.
پشتیبانی از چند کلید (MULTIPLE KEY SUPPORT)
علاوه بر کلید پیشفرض ضمنی، git-crypt از کلیدهای جایگزین نیز پشتیبانی میکند که میتوان از آنها برای رمزنگاری فایلهای خاص استفاده کرد و آنها را با کاربران مشخصی از GPG به اشتراک گذاشت. این قابلیت زمانی مفید است که بخواهید به همکاران مختلف، دسترسی به مجموعههای متفاوتی از فایلها را اعطا نمایید.
برای تولید یک کلید جایگزین به نام KEYNAME، گزینه -k KEYNAME را به صورت زیر به git-crypt init ارسال کنید:
git-crypt init -k KEYNAME
برای رمزنگاری یک فایل با استفاده از یک کلید جایگزین، فیلتر git-crypt-KEYNAME را در فایل .gitattributes به شکل زیر به کار ببرید:
secretfile filter=git-crypt-KEYNAME diff=git-crypt-KEYNAME
برای برونبری یک کلید جایگزین یا به اشتراک گذاشتن آن با یک کاربر GPG، گزینه -k KEYNAME را به صورت زیر به git-crypt export-key یا git-crypt add-gpg-user ارسال کنید:
git-crypt export-key -k KEYNAME /path/to/keyfile git-crypt add-gpg-user -k KEYNAME GPG_USER_ID
برای باز کردن قفل مخزن با یک کلید جایگزین، دستور git-crypt unlock را به صورت عادی به کار ببرید. git-crypt بهطور خودکار تشخیص خواهد داد که کدام کلید در حال استفاده است.
همچنین ببینید (SEE ALSO)
git(1), gitattributes(5), صفحه اصلی git-crypt[1], مخزن GitHub[2]
نویسنده (AUTHOR)
Andrew Ayer <agwa@andrewayer.name>
یادداشتها (NOTES)
- 1.
- صفحه اصلی git-crypt
- 2.
- مخزن GitHub
| 2022-04-21 | git-crypt 0.8.0 |