'\" t .\" Title: git-credential .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2026-06-29 .\" Manual: راهنمای گیت .\" Source: Git 2.55.0 .\" Language: Persian .\" .TH "GIT\-CREDENTIAL" "1" "2026\-06\-29" "Git 2\&.55\&.0" "دستورات عمومی کاربر" .\" ----------------------------------------------------------------- .\" * 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-credential \- بازیابی و ذخیره اطلاعات احراز هویت کاربر .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \*(Aqgit credential\*(Aq (fill|approve|reject|capability) .fi .sp .SH "توضیحات (DESCRIPTION)" .sp گیت دارای یک رابط داخلی برای ذخیره و بازیابی اطلاعات احراز هویت از برنامه‌های کمکی خاص سیستم، و همچنین درخواست نام کاربری و گذرواژه از کاربر است\&. دستور git\-credential این رابط را در دسترس اسکریپت‌هایی قرار می‌دهد که ممکن است بخواهند اطلاعات احراز هویت را به همان شیوه گیت بازیابی، ذخیره یا از کاربر درخواست کنند\&. طراحی این رابط قابل اسکریپت‌نویسی، از API داخلی C الگوبرداری شده است؛ برای پیش‌زمینه بیشتر درباره مفاهیم، \fBcredential\&.h\fR را ببینید\&. .sp دستور git\-credential یک گزینه عملیات ("action") در خط فرمان دریافت می‌کند (یکی از \fBfill\fR، \fBapprove\fR یا \fBreject\fR) و شرح اطلاعات احراز هویت را از ورودی استاندارد (stdin) می‌خواند (بخش «قالب ورودی/خروجی» را ببینید)\&. .sp اگر عملیات برابر با \fBfill\fR باشد، git\-credential تلاش خواهد کرد با خواندن فایل‌های پیکربندی، ارتباط با برنامه‌های کمکی پیکربندی‌شده احراز هویت یا درخواست از کاربر، مشخصه‌های «username» و «password» را به شرح اضافه کند\&. سپس مشخصه‌های نام کاربری و گذرواژه از شرح اطلاعات احراز هویت همراه با مشخصه‌هایی که از پیش ارائه شده‌اند در خروجی استاندارد چاپ می‌شوند\&. .sp اگر عملیات برابر با \fBapprove\fR باشد، git\-credential شرح را برای تمام برنامه‌های کمکی پیکربندی‌شده احراز هویت ارسال می‌کند که ممکن است اطلاعات احراز هویت را برای استفاده‌های بعدی ذخیره کنند\&. .sp اگر عملیات برابر با \fBreject\fR باشد، git\-credential شرح را برای تمام برنامه‌های کمکی پیکربندی‌شده احراز هویت ارسال می‌کند که ممکن است هرگونه اطلاعات احراز هویت ذخیره‌شده منطبق با این شرح را پاک کنند\&. .sp اگر عملیات برابر با \fBcapability\fR باشد، git\-credential هر قابلیتی را که پشتیبانی می‌کند در خروجی استاندارد اعلام خواهد کرد\&. .sp اگر عملیات برابر با \fBapprove\fR یا \fBreject\fR باشد، نباید هیچ خروجی تولید شود\&. .SH "کاربرد متداول GIT CREDENTIAL (TYPICAL USE OF GIT CREDENTIAL)" .sp برنامه‌ای که از git\-credential استفاده می‌کند، معمولاً با دنبال کردن این مراحل از \fBgit\fR \fBcredential\fR استفاده خواهد کرد: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} تولید یک شرح اطلاعات احراز هویت بر اساس زمینه مورد نظر\&. .sp برای نمونه، اگر گذرواژه‌ای برای \fBhttps://example\&.com/foo\&.git\fR بخواهیم، ممکن است شرح اطلاعات احراز هویت زیر را تولید کنیم (خط خالی انتهای آن را فراموش نکنید؛ این خط به \fBgit\fR \fBcredential\fR اعلام می‌کند که برنامه، ارائه تمام اطلاعات موجود خود را به پایان رسانده است): .sp .if n \{\ .RS 4 .\} .nf protocol=https host=example\&.com path=foo\&.git .fi .if n \{\ .RE .\} .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} درخواست از git\-credential برای ارائه نام کاربری و گذرواژه مربوط به این شرح\&. این کار با اجرای دستور \fBgit\fR \fBcredential\fR \fBfill\fR و ارسال شرح مرحله (۱) به ورودی استاندارد آن انجام می‌شود\&. شرح کامل اطلاعات احراز هویت (از جمله خود اعتبارنامه، یعنی شناسه ورود و گذرواژه) در خروجی استاندارد تولید خواهد شد، مانند: .sp .if n \{\ .RS 4 .\} .nf protocol=https host=example\&.com username=bob password=secr3t .fi .if n \{\ .RE .\} .sp در بیشتر موارد، این بدان معناست که مشخصه‌های ارائه‌شده در ورودی، در خروجی تکرار خواهند شد، اما گیت ممکن است شرح اطلاعات احراز هویت را نیز تغییر دهد؛ برای نمونه، با حذف مشخصه \fBpath\fR هنگامی که پروتکل HTTP(s) بوده و مقدار \fBcredential\&.useHttpPath\fR برابر با false باشد\&. .sp اگر \fBgit\fR \fBcredential\fR از گذرواژه مطلع بود، این مرحله پیش از بازگرداندن \fBpassword=secr3t\fR ممکن است نیازی به تایپ واقعی این گذرواژه توسط کاربر نداشته باشد (کاربر ممکن است در عوض گذرواژه‌ای برای باز کردن قفل دسته‌کلید (keychain) وارد کرده باشد، یا در صورتی که قفل دسته‌کلید از قبل باز بوده، هیچ تعاملی با کاربر انجام نشده باشد)\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} استفاده از اطلاعات احراز هویت (برای نمونه، دسترسی به نشانی وب با نام کاربری و گذرواژه مرحله (۲))، و بررسی اینکه آیا پذیرفته شده است یا خیر\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} گزارش موفقیت یا عدم موفقیت گذرواژه\&. اگر اطلاعات احراز هویت اجازه داد عملیات با موفقیت تکمیل شود، می‌توان آن را با عملیات «approve» علامت‌گذاری کرد تا به \fBgit\fR \fBcredential\fR اعلام شود در فراخوانی بعدی آن را دوباره استفاده کند\&. اگر اطلاعات احراز هویت در حین عملیات رد شد، از عملیات «reject» استفاده کنید تا \fBgit\fR \fBcredential\fR در فراخوانی بعدی گذرواژه جدیدی درخواست کند\&. در هر دو حالت، باید شرح اطلاعات احراز هویت به‌دست‌آمده از مرحله (۲) (که شامل فیلدهای ارائه‌شده در مرحله (۱) نیز هست) به \fBgit\fR \fBcredential\fR ارائه شود\&. .RE .SH "قالب ورودی/خروجی (INPUT/OUTPUT FORMAT)" .sp دستور \fBgit\fR \fBcredential\fR (بسته به عملیات استفاده‌شده) اطلاعات احراز هویت را در ورودی/خروجی استاندارد خود می‌خواند و/یا می‌نویسد\&. این اطلاعات می‌توانند مربوط به کلیدهایی باشند که \fBgit\fR \fBcredential\fR برای آن‌ها اطلاعات ورود را به دست می‌آورد (برای نمونه host، protocol، path)، یا داده‌های واقعی اطلاعات احراز هویت باشند که باید به دست آیند (username/password)\&. .sp اطلاعات احراز هویت به مجموعه‌ای از مشخصه‌های نام‌گذاری‌شده تقسیم می‌شود، به طوری که در هر خط یک مشخصه قرار دارد\&. هر مشخصه با یک جفت کلید\-مقدار مشخص می‌شود که با یک علامت مساوی (\fB=\fR) از هم جدا شده و در انتهای آن یک خط جدید قرار می‌گیرد\&. .sp کلید می‌تواند شامل هر بایتی به جز \fB=\fR، خط جدید یا NUL باشد\&. مقدار می‌تواند شامل هر بایتی به جز خط جدید یا NUL باشد\&. برای اینکه پیاده‌سازی‌ها بتوانند پردازش را به صورت کارآمد انجام دهند، یک خط، شامل خط جدید انتهایی، نباید از ۶۵۵۳۵ بایت تجاوز کند\&. .sp مشخصه‌هایی با کلیدهایی که به براکت‌های آرایه‌ای به سبک زبان C یعنی [] ختم می‌شوند می‌توانند مقادیر متعددی داشته باشند\&. هر نمونه از یک مشخصه چندمقداری، یک فهرست مرتب از مقادیر را تشکیل می‌دهد \- ترتیب مشخصه‌های تکرارشده، ترتیب مقادیر را مشخص می‌کند\&. یک مشخصه چندمقداری خالی (\fBkey\fR[]\fB=\en\fR) برای پاک کردن ورودی‌های قبلی و بازنشانی فهرست عمل می‌کند\&. .sp در تمام موارد، با همه بایت‌ها به‌صورت همان‌گونه که هستند رفتار می‌شود (یعنی هیچ نقل‌قولی وجود ندارد، و نمی‌توان مقداری با خط جدید یا NUL در آن ارسال کرد)\&. فهرست مشخصه‌ها با یک خط خالی یا پایان فایل خاتمه می‌یابد\&. .sp گیت مشخصه‌های زیر را درک می‌کند: .PP \fBprotocol\fR .RS 4 پروتکلی که اطلاعات احراز هویت روی آن استفاده خواهد شد (برای نمونه، \fBhttps\fR)\&. .RE .PP \fBhost\fR .RS 4 نام میزبان راه دور برای یک اطلاعات احراز هویت شبکه\&. در صورتی که شماره پورت مشخص شده باشد، این مورد شامل شماره پورت نیز می‌شود (برای نمونه، "example\&.com:8088")\&. .RE .PP \fBpath\fR .RS 4 مسیری که اطلاعات احراز هویت با آن استفاده خواهد شد\&. برای نمونه، جهت دسترسی به یک مخزن راه دور https، این مقدار مسیر مخزن بر روی سرور خواهد بود\&. .RE .PP \fBusername\fR .RS 4 نام کاربری اطلاعات احراز هویت، در صورتی که از قبل آن را داشته باشیم (برای نمونه، از یک نشانی اینترنتی، پیکربندی، کاربر، یا از یک برنامه کمکی که پیش‌تر اجرا شده است)\&. .RE .PP \fBpassword\fR .RS 4 گذرواژه اطلاعات احراز هویت، در صورتی که درخواست ذخیره آن را داریم\&. .RE .PP \fBpassword_expiry_utc\fR .RS 4 گذرواژه‌های تولیدشده مانند توکن دسترسی OAuth ممکن است تاریخ انقضا داشته باشند\&. هنگام خواندن اطلاعات احراز هویت از برنامه‌های کمکی، \fBgit\fR \fBcredential\fR \fBfill\fR گذرواژه‌های منقضی‌شده را نادیده می‌گیرد\&. این مقدار به صورت زمان یونیکس UTC، به ثانیه‌ها از سال ۱۹۷۰ نمایش داده می‌شود\&. .RE .PP \fBoauth_refresh_token\fR .RS 4 یک توکن تازه‌سازی OAuth ممکن است همراه با گذرواژه‌ای باشد که خود یک توکن دسترسی OAuth است\&. برنامه‌های کمکی باید با این مشخصه مانند مشخصه گذرواژه به صورت محرمانه رفتار کنند\&. خود گیت رفتار خاصی برای این مشخصه ندارد\&. .RE .PP \fBurl\fR .RS 4 هنگامی که این مشخصه ویژه توسط \fBgit\fR \fBcredential\fR خوانده می‌شود، مقدار آن به عنوان یک نشانی اینترنتی (URL) تجزیه شده و طوری با آن رفتار می‌شود که گویی اجزای تشکیل‌دهنده آن خوانده شده‌اند (برای نمونه، \fBurl=https://example\&.com\fR طوری عمل خواهد کرد که گویی \fBprotocol=https\fR و \fBhost=example\&.com\fR ارائه شده‌اند)\&. این می‌تواند به فراخواننده‌ها کمک کند تا از تجزیه نشانی‌های اینترنتی توسط خودشان بی‌نیاز شوند\&. .sp توجه داشته باشید که تعیین پروتکل اجباری است و اگر نشانی اینترنتی نام میزبان را مشخص نکند (برای نمونه، "cert:///path/to/file")، اطلاعات احراز هویت شامل یک مشخصه نام میزبان خواهد بود که مقدار آن یک رشته خالی است\&. .sp اجزایی که در نشانی اینترنتی وجود ندارند (برای نمونه، در مثال بالا نام کاربری وجود ندارد) بدون مقدار رها خواهند شد\&. .RE .PP \fBauthtype\fR .RS 4 این مشخصه نشان می‌دهد که باید از طرح احراز هویت مورد نظر استفاده شود\&. مقادیر متداول برای HTTP و HTTPS شامل \fBbasic\fR، \fBbearer\fR، و \fBdigest\fR است، گرچه مورد آخر ناامن بوده و نباید استفاده شود\&. اگر \fBcredential\fR استفاده شود، ممکن است این مشخصه روی یک رشته دلخواه و مناسب برای پروتکل مورد نظر (معمولاً HTTP) تنظیم شود\&. .sp این مقدار نباید ارسال شود مگر اینکه قابلیت مناسب (زیر را ببینید) در ورودی ارائه شده باشد\&. .RE .PP \fBcredential\fR .RS 4 اطلاعات احراز هویت از پیش کدگذاری‌شده، مناسب برای پروتکل مورد نظر (معمولاً HTTP)\&. اگر این کلید ارسال شود، \fBauthtype\fR اجباری است و از \fBusername\fR و \fBpassword\fR استفاده نمی‌شود\&. برای HTTP، گیت مقدار \fBauthtype\fR و این مقدار را با یک فاصله ادغام می‌کند تا سرآیند \fBAuthorization\fR را تعیین نماید\&. .sp این مقدار نباید ارسال شود مگر اینکه قابلیت مناسب (زیر را ببینید) در ورودی ارائه شده باشد\&. .RE .PP \fBephemeral\fR .RS 4 این مقدار بولی در صورت true بودن نشان می‌دهد که مقدار موجود در فیلد \fBcredential\fR نباید توسط برنامه کمکی احراز هویت ذخیره شود، زیرا سودمندی آن از نظر زمانی محدود است\&. برای نمونه، یک مقدار \fBcredential\fR از نوع HTTP Digest با استفاده از یک نانس (nonce) محاسبه می‌شود و استفاده مجدد از آن منجر به احراز هویت موفق نخواهد شد\&. همچنین این ممکن است برای شرایطی با اطلاعات احراز هویت کوتاه‌مدت (مانند ۲۴ ساعته) استفاده شود\&. مقدار پیش‌فرض false است\&. .sp برنامه کمکی احراز هویت همچنان با \fBstore\fR یا \fBerase\fR فراخوانی می‌شود تا بتواند تعیین کند که آیا عملیات موفقیت‌آمیز بوده است یا خیر\&. .sp این مقدار نباید ارسال شود مگر اینکه قابلیت مناسب (زیر را ببینید) در ورودی ارائه شده باشد\&. .RE .PP \fBstate\fR[] .RS 4 این مقدار یک وضعیت مات (opaque) ارائه می‌دهد که در صورت فراخوانی مجدد این برنامه کمکی، به آن بازگردانده خواهد شد\&. هر برنامه کمکی احراز هویت مختلف ممکن است این مورد را یک بار مشخص کند\&. این مقدار باید شامل یک پیشوند منحصربه‌فرد برای برنامه کمکی احراز هویت باشد و باید مقادیری را که با پیشوند آن مطابقت ندارند نادیده بگیرد\&. .sp این مقدار نباید ارسال شود مگر اینکه قابلیت مناسب (زیر را ببینید) در ورودی ارائه شده باشد\&. .RE .PP \fBcontinue\fR .RS 4 این یک مقدار بولی است که در صورت فعال بودن نشان می‌دهد که این احراز هویت یک بخش غیرنهایی از یک مرحله احراز هویت چندمرحله‌ای است\&. این در پروتکل‌هایی مانند NTLM و Kerberos رایج است، جایی که دو دور احراز هویت کلاینت لازم است، و تنظیم این فلگ به برنامه کمکی احراز هویت اجازه می‌دهد مرحله احراز هویت چندمرحله‌ای را پیاده‌سازی کند\&. این فلگ فقط باید در صورتی ارسال شود که مرحله بعدی لازم باشد؛ یعنی اگر دور دیگری از احراز هویت انتظار می‌رود\&. .sp این مقدار نباید ارسال شود مگر اینکه قابلیت مناسب (زیر را ببینید) در ورودی ارائه شده باشد\&. این مشخصه \fIیک‌طرفه\fR از طرف یک برنامه کمکی احراز هویت است تا اطلاعات را به گیت (یا سایر برنامه‌هایی که \fBgit\fR \fBcredential\fR را فراخوانی می‌کنند) منتقل کند\&. .RE .PP \fBwwwauth\fR[] .RS 4 هنگامی که یک پاسخ HTTP توسط گیت دریافت می‌شود که شامل یک یا چند سرآیند احراز هویت \fIWWW\-Authenticate\fR است، این سرآیندها توسط گیت به برنامه‌های کمکی احراز هویت منتقل می‌شوند\&. .sp هر مقدار سرآیند \fIWWW\-Authenticate\fR به عنوان یک مشخصه چندمقداری \fIwwwauth[]\fR ارسال می‌شود، جایی که ترتیب مشخصه‌ها همان ترتیبی است که در پاسخ HTTP ظاهر می‌شوند\&. این مشخصه \fIیک‌طرفه\fR از طرف گیت است تا اطلاعات اضافی را به برنامه‌های کمکی احراز هویت منتقل کند\&. .RE .PP \fBcapability\fR[] .RS 4 این مشخصه نشان می‌دهد که گیت یا برنامه کمکی، حسب مورد، از قابلیت مورد نظر پشتیبانی می‌کنند\&. این می‌تواند برای ارائه داده‌های بهتر و مشخص‌تر به عنوان بخشی از پروتکل استفاده شود\&. دستورالعمل \fBcapability\fR[] باید پیش از هر مقداری که به آن وابسته است قرار گیرد و این دستورالعمل‌ها \fIباید\fR اولین موردی باشند که در پروتکل اعلام می‌شوند\&. .sp در حال حاضر دو قابلیت پشتیبانی می‌شوند\&. اولی \fBauthtype\fR است که نشان می‌دهد مقادیر \fBauthtype\fR، \fBcredential\fR، و \fBephemeral\fR درک می‌شوند\&. دومی \fBstate\fR است که نشان می‌دهد مقادیر \fBstate\fR[] و \fBcontinue\fR درک می‌شوند\&. .sp الزامی نیست که فقط به دلیل پشتیبانی از یک قابلیت از ویژگی‌های اضافی استفاده شود، اما آن‌ها نباید بدون وجود آن قابلیت ارائه شوند\&. .RE .sp مشخصه‌ها و قابلیت‌های ناشناخته بدون سر و صدا نادیده گرفته می‌شوند\&. .SH "قالب ورودی/خروجی قابلیت‌ها (CAPABILITY INPUT/OUTPUT FORMAT)" .sp برای دستور \fBgit\fR \fBcredential\fR \fBcapability\fR، قالب کمی متفاوت است\&. نخست، یک اعلان \fBversion\fR \fB0\fR برای نشان دادن نسخه فعلی پروتکل انجام می‌شود، و سپس هر قابلیت با خطی مانند \fBcapability\fR \fBauthtype\fR اعلام می‌گردد\&. برنامه‌های کمکی احراز هویت نیز می‌توانند این قالب را پیاده‌سازی کنند، باز هم با آرگومان \fBcapability\fR\&. ممکن است در آینده خطوط دیگری اضافه شوند؛ فراخواننده‌ها باید خطوطی را که متوجه نمی‌شوند نادیده بگیرند\&. .sp از آنجا که این یک بخش جدید از پروتکل برنامه‌های کمکی احراز هویت است، نسخه‌های قدیمی‌تر گیت و همچنین برخی از برنامه‌های کمکی ممکن است از آن پشتیبانی نکنند\&. اگر وضعیت خروج غیر صفر دریافت شود، یا اگر خط نخست با کلمه \fBversion\fR و یک فاصله شروع نشود، فراخواننده‌ها باید فرض کنند که هیچ قابلیتی پشتیبانی نمی‌شود\&. .sp هدف از این قالب، متمایز ساختن آن از خروجی اطلاعات احراز هویت به شیوه‌ای بدون ابهام است\&. استفاده از برنامه‌های کمکی بسیار ساده احراز هویت (برای نمونه، اسکریپت‌های پوسته درون‌خطی) که همیشه خروجی یکسانی تولید می‌کنند ممکن است\&. استفاده از یک قالب متمایز به کاربران امکان می‌دهد بدون نگرانی در مورد پیاده‌سازی صحیح اعلان قابلیت‌ها یا سردرگم کردن تصادفی فراخوانندگانی که برای قابلیت‌ها پرس‌وجو می‌کنند، همچنان از این نحو استفاده نمایند\&. .SH "گیت (GIT)" .sp بخشی از مجموعه \fBgit\fR(1)