'\" t .\" Title: git-crypt .\" Author: Andrew Ayer .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2022-04-21 .\" Manual: git-crypt .\" Source: git-crypt 0.8.0 .\" Language: Persian .\" .TH "GIT\-CRYPT" "1" "2022\-04\-21" "git-crypt 0.8.0" "git-crypt" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" git-crypt \- رمزنگاری شفاف فایل‌ها در گیت .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBgit\-crypt\ \fR\fB[\fIOPTIONS\fR]\fR\fB\ \fR\fB\fICOMMAND\fR\fR\fB\ \fR\fB[\fIARGS\fR...]\fR\ 'u \fBgit\-crypt \fR\fB[\fIOPTIONS\fR]\fR\fB \fR\fB\fICOMMAND\fR\fR\fB \fR\fB[\fIARGS\fR...]\fR .SH "دستورهای متداول (COMMON COMMANDS)" .HP \w'\fBgit\-crypt\ init\fR\ 'u \fBgit\-crypt init\fR .HP \w'\fBgit\-crypt\ status\fR\ 'u \fBgit\-crypt status\fR .HP \w'\fBgit\-crypt\ lock\fR\ 'u \fBgit\-crypt lock\fR .SH "دستورهای GPG (GPG COMMANDS)" .HP \w'\fBgit\-crypt\ add\-gpg\-user\ \fR\fB\fIGPG_USER_ID\fR\fR\ 'u \fBgit\-crypt add\-gpg\-user \fR\fB\fIGPG_USER_ID\fR\fR .HP \w'\fBgit\-crypt\ unlock\fR\ 'u \fBgit\-crypt unlock\fR .SH "دستورهای کلید متقارن (SYMMETRIC KEY COMMANDS)" .HP \w'\fBgit\-crypt\ export\-key\ \fR\fB\fIOUTPUT_KEY_FILE\fR\fR\ 'u \fBgit\-crypt export\-key \fR\fB\fIOUTPUT_KEY_FILE\fR\fR .HP \w'\fBgit\-crypt\ unlock\ \fR\fB\fIKEY_FILE\fR\fR\ 'u \fBgit\-crypt unlock \fR\fB\fIKEY_FILE\fR\fR .SH "توضیحات (DESCRIPTION)" .PP دستور \fBgit\-crypt\fR امکان رمزنگاری و رمزگشایی شفاف فایل‌ها را در یک مخزن گیت فراهم می‌کند\&. فایل‌هایی که برای محافظت انتخاب می‌کنید هنگام کامیت شدن رمزنگاری شده و هنگام بازبینی (checkout) رمزگشایی می‌شوند\&. git\-crypt به شما امکان می‌دهد مخزنی شامل ترکیبی از محتوای عمومی و خصوصی را آزادانه به اشتراک بگذارید\&. git\-crypt به‌گونه‌ای منعطف سازگار می‌شود که توسعه‌دهندگان بدون کلید مخفی همچنان می‌توانند مخزنی با فایل‌های رمزنگاری‌شده را کلون کرده و تغییرات خود را کامیت کنند\&. این قابلیت به شما اجازه می‌دهد اطلاعات محرمانه خود (مانند کلیدها یا گذرواژه‌ها) را بدون نیاز به قفل کردن کل مخزن، در همان مخزن و کنار کدهای خود ذخیره نمایید\&. .SH "دستورها (COMMANDS)" .PP دستور \fBgit\-crypt\fR از نظر منطقی به چندین زیردستور تقسیم شده است که کارهای مجزایی انجام می‌دهند\&. هر زیردستور و آرگومان‌های آن در ادامه توضیح داده شده‌اند\&. توجه داشته باشید که آرگومان‌ها و گزینه‌های مربوط به زیردستورها باید در خط فرمان \fIپس از\fR نام زیردستور مشخص شوند\&. .PP \fBinit \fR\fB[\fIOPTIONS\fR]\fR .RS 4 تولید یک کلید و آماده‌سازی مخزن گیت جاری برای استفاده از git\-crypt\&. .sp گزینه‌های زیر پشتیبانی می‌شوند: .PP \fB\-k\fR \fIKEY_NAME\fR, \fB\-\-key\-name\fR \fIKEY_NAME\fR .RS 4 راه‌اندازی کلید مشخص‌شده به جای کلید پیش‌فرض\&. git\-crypt از چند کلید در هر مخزن پشتیبانی می‌کند، که به شما امکان می‌دهد فایل‌های مختلف را با گروه‌های متفاوتی از همکاران به اشتراک بگذارید\&. .RE .RE .PP \fBstatus \fR\fB[\fIOPTIONS\fR]\fR .RS 4 نمایش فهرستی از فایل‌های موجود در مخزن، همراه با وضعیت آن‌ها (رمزنگاری‌شده یا رمزنگاری‌نشده)\&. .sp گزینه‌های زیر پشتیبانی می‌شوند: .PP \fB\-e\fR .RS 4 فقط فایل‌های رمزنگاری‌شده را نمایش می‌دهد\&. .RE .PP \fB\-u\fR .RS 4 فقط فایل‌های رمزنگاری‌نشده را نمایش می‌دهد\&. .RE .PP \fB\-f\fR, \fB\-\-fix\fR .RS 4 رمزنگاری فایل‌هایی که باید رمزنگاری شوند اما بدون رمزنگاری به مخزن کامیت شده یا به نمایه (index) اضافه شده‌اند\&. (این حالت ممکن است زمانی رخ دهد که فایلی قبل از راه‌اندازی git\-crypt یا قبل از اضافه شدن آن به فایل gitattributes اضافه شده باشد\&.) .RE .RE .PP \fBadd\-gpg\-user \fR\fB[\fIOPTIONS\fR]\fR\fB \fR\fB\fIGPG_USER_ID\fR...\fR .RS 4 افزودن کاربرانی با شناسه‌های کاربری GPG مشخص‌شده به عنوان همکار\&. به‌طور مشخص، git\-crypt از \fBgpg\fR(1) برای رمزنگاری کلید متقارن مشترک با کلیدهای عمومی هر شناسه کاربری GPG استفاده کرده و کلیدهای رمزنگاری‌شده با GPG را در دایرکتوری \&.git\-crypt در ریشه مخزن ذخیره می‌کند\&. .sp \fIGPG_USER_ID\fR می‌تواند یک شناسه کلید، یک اثرانگشت کامل، یک نشانی ایمیل یا هر چیز دیگری باشد که یک کلید عمومی را به‌صورت یکتا برای GPG مشخص کند (بخش "HOW TO SPECIFY A USER ID" در صفحه راهنمای \fBgpg\fR(1) را ببینید)\&. .sp گزینه‌های زیر پشتیبانی می‌شوند: .PP \fB\-k\fR \fIKEY_NAME\fR, \fB\-\-key\-name\fR \fIKEY_NAME\fR .RS 4 اعطای دسترسی به کلید داده‌شده به جای کلید پیش‌فرض\&. .RE .PP \fB\-n\fR, \fB\-\-no\-commit\fR .RS 4 تغییرات دایرکتوری \&.git\-crypt را به‌طور خودکار کامیت نمی‌کند\&. .RE .PP \fB\-\-trusted\fR .RS 4 فرض می‌کند که کلیدهای GPG مشخص‌شده در خط فرمان مورد اعتماد هستند؛ یعنی در واقع متعلق به همان کاربرانی هستند که ادعا می‌شود\&. .sp بدون این گزینه، git\-crypt از همان مدل اعتماد GPG استفاده می‌کند که به‌طور پیش‌فرض مبتنی بر شبکه اعتماد (Web of Trust) است\&. تحت این مدل، git\-crypt کلیدهای GPG را که فاقد امضاهای مورد اعتماد باشند رد خواهد کرد\&. .sp اگر نمی‌خواهید از شبکه اعتماد استفاده کنید، می‌توانید با تنظیم گزینه \fBtrust\-model\fR در فایل ~/\&.gnupg/gpg\&.conf مدل اعتماد GPG را تغییر دهید (صفحه راهنمای \fBgpg\fR(1) را ببینید)، یا در هر مورد به‌طور جداگانه از گزینه \fB\-\-trusted\fR در دستور \fBadd\-gpg\-user\fR استفاده نمایید\&. .RE .RE .PP \fBunlock \fR\fB\fR\fB[\fIKEY_FILE\fR...]\fR .RS 4 رمزگشایی مخزن\&. اگر یک یا چند فایل کلید در خط فرمان مشخص شده باشند، git\-crypt تلاش می‌کند با استفاده از آن کلیدهای متقارن مشترک عملیات رمزگشایی را انجام دهد\&. اگر هیچ فایل کلیدی مشخص نشده باشد، git\-crypt تلاش می‌کند با استفاده از یک کلید رمزنگاری‌شده با GPG که در دایرکتوری \&.git\-crypt مخزن ذخیره شده است، عملیات رمزگشایی را انجام دهد\&. .sp این دستور هیچ گزینه‌ای نمی‌پذیرد\&. .RE .PP \fBexport\-key \fR\fB[\fIOPTIONS\fR]\fR\fB \fR\fB\fIFILENAME\fR\fR .RS 4 برون‌بری کلید متقارن مشترک مخزن در فایل داده‌شده\&. .sp گزینه‌های زیر پشتیبانی می‌شوند: .PP \fB\-k\fR \fIKEY_NAME\fR, \fB\-\-key\-name\fR \fIKEY_NAME\fR .RS 4 برون‌بری کلید داده‌شده به جای کلید پیش‌فرض\&. .RE .RE .PP \fBhelp \fR\fB[\fICOMMAND\fR]\fR .RS 4 نمایش راهنما برای \fICOMMAND\fR داده‌شده، یا مروری بر همه دستورها در صورتی که دستوری مشخص نشده باشد\&. .RE .PP \fBversion\fR .RS 4 چاپ نسخه فعلی نصب‌شده از \fBgit\-crypt\fR\&. قالب خروجی همیشه به صورت "git\-crypt" همراه با یک فاصله و سپس شماره نسخه نقطه‌دار است\&. .RE .SH "استفاده از GIT\-CRYPT (USING GIT\-CRYPT)" .PP ابتدا، با اجرای دستور \fBgit\-crypt init\fR یک مخزن را برای استفاده از git\-crypt آماده می‌کنید\&. .PP سپس، با ایجاد یک فایل \fBgitattributes\fR(5) فایل‌هایی را که می‌خواهید رمزنگاری شوند مشخص می‌نمایید\&. به هر فایلی که می‌خواهید رمزنگاری شود باید مشخصه‌های "filter=git\-crypt diff=git\-crypt" اختصاص داده شود\&. برای مثال: .sp .if n \{\ .RS 4 .\} .nf secretfile filter=git\-crypt diff=git\-crypt *\&.key filter=git\-crypt diff=git\-crypt .fi .if n \{\ .RE .\} .PP همانند یک فایل \&.gitignore\c ، فایل‌های \&.gitattributes می‌توانند با الگوهای عام (wildcards) مطابقت داشته باشند و باید در مخزن کامیت شوند\&. مطمئن شوید که به اشتباه خود فایل \&.gitattributes (یا سایر فایل‌های گیت نظیر \&.gitignore یا \&.gitmodules\c ) را رمزنگاری نکنید\&. حتماً اطمینان حاصل کنید که قوانین \&.gitattributes شما \fIپیش از\fR افزودن فایل‌های حساس مستقر شده باشند، در غیر این صورت آن فایل‌ها رمزنگاری نخواهند شد! .PP برای به اشتراک گذاشتن مخزن با دیگران (یا با خودتان) با استفاده از GPG، این دستور را اجرا کنید: .sp .if n \{\ .RS 4 .\} .nf git\-crypt add\-gpg\-user \fIGPG_USER_ID\fR .fi .if n \{\ .RE .\} .PP شناسه \fIGPG_USER_ID\fR می‌تواند یک شناسه کلید، یک اثرانگشت کامل، یک نشانی ایمیل یا هر چیز دیگری باشد که یک کلید عمومی را به‌طور یکتا برای GPG مشخص کند\&. توجه: \fBgit\-crypt add\-gpg\-user\fR یک فایل کلید رمزنگاری‌شده با GPG را در دایرکتوری \&.git\-crypt در ریشه مخزن شما افزوده و کامیت می‌کند\&. .PP در روشی دیگر، می‌توانید یک کلید مخفی متقارن را برون‌بری کنید، که باید آن را با روشی امن به همکاران برسانید (نیازی به GPG نیست و هیچ فایلی به مخزن شما افزوده نمی‌شود): .sp .if n \{\ .RS 4 .\} .nf git\-crypt export\-key \fI/path/to/key\fR .fi .if n \{\ .RE .\} .PP پس از کلون کردن مخزنی با فایل‌های رمزنگاری‌شده، با استفاده از GPG قفل آن را باز کنید: .sp .if n \{\ .RS 4 .\} .nf git\-crypt unlock .fi .if n \{\ .RE .\} .PP یا با یک کلید متقارن: .sp .if n \{\ .RS 4 .\} .nf git\-crypt unlock /path/to/key .fi .if n \{\ .RE .\} .PP این تمام کاری است که باید انجام دهید \- پس از راه‌اندازی git\-crypt (چه با \fBgit\-crypt init\fR و چه با \fBgit\-crypt unlock\fR)، می‌توانید طبق روال معمول از git استفاده کنید \- رمزنگاری و رمزگشایی به‌صورت شفاف انجام می‌شوند\&. .SH "فایل GITATTRIBUTES\&. (THE \&.GITATTRIBUTES FILE)" .PP فایل \&.gitattributes در \fBgitattributes\fR(5) مستند شده است\&. قالب الگوی فایل مشابه قالب به‌کاررفته در \&.gitignore\c ، همان‌گونه که در \fBgitignore\fR(5) مستند شده، می‌باشد؛ با این تفاوت که تنها مشخص کردن یک دایرکتوری (مثلاً "/dir/") برای رمزنگاری همه فایل‌های درون آن کافی \fIنیست\fR\&. .PP همچنین توجه داشته باشید که الگوی "dir/*" با فایل‌های واقع در زیردایرکتوری‌های dir/ مطابقت پیدا نمی‌کند\&. برای رمزنگاری کل زیرشاخه dir/، عبارت زیر را در dir/\&.gitattributes قرار دهید: .sp .if n \{\ .RS 4 .\} .nf * filter=git\-crypt diff=git\-crypt \&.gitattributes !filter !diff .fi .if n \{\ .RE .\} .PP الگوی دوم برای اطمینان از این‌که خود \&.gitattributes رمزنگاری نشود، ضروری است\&. .SH "پشتیبانی از چند کلید (MULTIPLE KEY SUPPORT)" .PP علاوه بر کلید پیش‌فرض ضمنی، git\-crypt از کلیدهای جایگزین نیز پشتیبانی می‌کند که می‌توان از آن‌ها برای رمزنگاری فایل‌های خاص استفاده کرد و آن‌ها را با کاربران مشخصی از GPG به اشتراک گذاشت\&. این قابلیت زمانی مفید است که بخواهید به همکاران مختلف، دسترسی به مجموعه‌های متفاوتی از فایل‌ها را اعطا نمایید\&. .PP برای تولید یک کلید جایگزین به نام \fIKEYNAME\fR\c ، گزینه \fB\-k \fR\fB\fIKEYNAME\fR\fR را به صورت زیر به \fBgit\-crypt init\fR ارسال کنید: .sp .if n \{\ .RS 4 .\} .nf git\-crypt init \-k \fIKEYNAME\fR .fi .if n \{\ .RE .\} .PP برای رمزنگاری یک فایل با استفاده از یک کلید جایگزین، فیلتر git\-crypt\-\fIKEYNAME\fR را در فایل \&.gitattributes به شکل زیر به کار ببرید: .sp .if n \{\ .RS 4 .\} .nf \fIsecretfile\fR filter=git\-crypt\-\fIKEYNAME\fR diff=git\-crypt\-\fIKEYNAME\fR .fi .if n \{\ .RE .\} .PP برای برون‌بری یک کلید جایگزین یا به اشتراک گذاشتن آن با یک کاربر GPG، گزینه \fB\-k \fR\fB\fIKEYNAME\fR\fR را به صورت زیر به \fBgit\-crypt export\-key\fR یا \fBgit\-crypt add\-gpg\-user\fR ارسال کنید: .sp .if n \{\ .RS 4 .\} .nf git\-crypt export\-key \-k \fIKEYNAME\fR \fI/path/to/keyfile\fR git\-crypt add\-gpg\-user \-k \fIKEYNAME\fR \fIGPG_USER_ID\fR .fi .if n \{\ .RE .\} .PP برای باز کردن قفل مخزن با یک کلید جایگزین، دستور \fBgit\-crypt unlock\fR را به صورت عادی به کار ببرید\&. git\-crypt به‌طور خودکار تشخیص خواهد داد که کدام کلید در حال استفاده است\&. .SH "همچنین ببینید (SEE ALSO)" .PP \fBgit\fR(1), \fBgitattributes\fR(5), \m[blue]\fBصفحه اصلی git\-crypt\fR\m[]\&\s-2\u[1]\d\s+2, \m[blue]\fBمخزن GitHub\fR\m[]\&\s-2\u[2]\d\s+2 .SH "نویسنده (AUTHOR)" .PP \fBAndrew Ayer\fR <\&agwa@andrewayer\&.name\&> .RS 4 .RE .SH "یادداشت‌ها (NOTES)" .IP " 1." 4 صفحه اصلی git-crypt .RS 4 \%https://www.agwa.name/projects/git-crypt .RE .IP " 2." 4 مخزن GitHub .RS 4 \%https://github.com/AGWA/git-crypt .RE