.\" $OpenBSD: ssh-add.1,v 1.90 2026/07/11 11:15:03 naddy Exp $ .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland .\" All rights reserved .\" .\" As far as I am concerned, the code I have written for this software .\" can be used freely for any purpose. Any derived versions of this .\" software must be clearly marked as such, and if the derived work is .\" incompatible with the protocol description in the RFC file, it must be .\" called by a name other than "ssh" or "Secure Shell". .\" .\" .\" Copyright (c) 1999,2000 Markus Friedl. All rights reserved. .\" Copyright (c) 1999 Aaron Campbell. All rights reserved. .\" Copyright (c) 1999 Theo de Raadt. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" .TH "SSH-ADD" "1" "11 ژوئیه 2026" "OpenSSH" "راهنمای دستورات کاربردی" .SH "نام (NAME)" ssh-add \- افزودن هویتهای کلید خصوصی به کارگزار احراز هویت .SH "خلاصه دستور (SYNOPSIS)" \fBssh-add\fR [\fB\-CcDdKkLlNqvXx\fR] [\fB\-E\fR \fIfingerprint_hash\fR] [\fB\-H\fR \fIhostkey_file\fR] [\fB\-h\fR \fIdestination_constraint\fR] [\fB\-S\fR \fIprovider\fR] [\fB\-t\fR \fIlife\fR] [\fIfile\fR ...] .br \fBssh-add\fR \fB\-s\fR \fIpkcs11\fR [\fB\-Cv\fR] [\fIcertificate\fR ...] .br \fBssh-add\fR \fB\-e\fR \fIpkcs11\fR .br \fBssh-add\fR \fB\-T\fR \fIpubkey\fR ... .br \fBssh-add\fR \fB\-Q\fR .SH "توضیحات (DESCRIPTION)" دستور \fBssh-add\fR هویت‌های کلید خصوصی را به کارگزار احراز هویت، \fBssh-agent\fR(1)، اضافه می‌کند. هنگامی که بدون آرگومان اجرا شود، فایل‌های \fI~/.ssh/id_rsa\fR، \fI~/.ssh/id_ecdsa\fR، \fI~/.ssh/id_ecdsa_sk\fR، \fI~/.ssh/id_ed25519\fR، \fI~/.ssh/id_ed25519_sk\fR و \fI~/.ssh/id_mldsa44_ed25519\fR را اضافه می‌کند. پس از بارگذاری یک کلید خصوصی، \fBssh-add\fR تلاش خواهد کرد تا اطلاعات گواهی مربوطه را از نام فایلی که با افزودن \fI-cert.pub\fR به انتهای نام فایل کلید خصوصی به دست می‌آید، بارگذاری کند. نام‌های فایل جایگزین را می‌توان در خط فرمان مشخص کرد. .PP اگر فایلی به عبارت عبور (passphrase) نیاز داشته باشد، \fBssh-add\fR عبارت عبور را از کاربر درخواست می‌کند. عبارت عبور از پایانه (tty) کاربر خوانده می‌شود. اگر چند فایل هویت مشخص شده باشند، \fBssh-add\fR آخرین عبارت عبور را مجدداً امتحان خواهد کرد. .PP کارگزار احراز هویت باید در حال اجرا باشد و متغیر محیطی \fBSSH_AUTH_SOCK\fR باید شامل نام سوکت آن باشد تا \fBssh-add\fR بتواند کار کند. .PP گزینه‌ها به شرح زیر هستند: .SH "گزینه‌ها (OPTIONS)" .TP \fB\-C\fR هنگام بارگذاری کلیدها در کارگزار یا حذف کلیدها از آن، تنها گواهی‌ها را پردازش کرده و از کلیدهای ساده صرف‌نظر می‌کند. .TP \fB\-c\fR مشخص می‌کند که هویت‌های اضافه‌شده باید پیش از استفاده برای احراز هویت، نیاز به تأیید داشته باشند. تأیید توسط \fBssh-askpass\fR(1) انجام می‌شود. تأیید موفقیت‌آمیز به جای متنی که در درخواست‌کننده وارد شده باشد، با یک وضعیت خروج صفر از سوی \fBssh-askpass\fR(1) مشخص می‌شود. .TP \fB\-D\fR تمام هویت‌ها را از کارگزار حذف می‌کند. .TP \fB\-d\fR به جای افزودن هویت‌ها، هویت‌ها را از کارگزار حذف می‌کند. اگر \fBssh-add\fR بدون آرگومان اجرا شده باشد، کلیدهای مربوط به هویت‌های پیش‌فرض و گواهی‌های متناظر آن‌ها حذف خواهند شد. در غیر این صورت، فهرست آرگومان‌ها به عنوان فهرستی از مسیرهای فایل‌های کلید عمومی برای تعیین کلیدها و گواهی‌های قابل حذف از کارگزار تفسیر خواهد شد. اگر هیچ کلید عمومی در مسیر داده‌شده یافت نشود، \fBssh-add\fR پسوند \fI.pub\fR را به انتهای آن افزوده و دوباره امتحان می‌کند. اگر فهرست آرگومان‌ها شامل \fB\-\fR باشد، آنگاه \fBssh-add\fR کلیدهای عمومیِ قابل حذف را از ورودی استاندارد می‌خواند. .TP \fB\-E\fR \fIfingerprint_hash\fR الگوریتم درهم‌سازی (هش) مورد استفاده هنگام نمایش اثر انگشت (fingerprint) کلید را مشخص می‌کند. گزینه‌های معتبر عبارتند از: \fBmd5\fR و \fBsha256\fR. مقدار پیش‌فرض \fBsha256\fR است. .TP \fB\-e\fR \fIpkcs11\fR کلیدهای ارائه‌شده توسط کتابخانه مشترک PKCS#11 به نام \fIpkcs11\fR را حذف می‌کند. .TP \fB\-H\fR \fIhostkey_file\fR یک فایل میزبان‌های شناخته‌شده (known hosts) را برای جستجوی کلیدهای میزبان هنگام استفاده از کلیدهای مقید به مقصد از طریق گزینهٔ \fB\-h\fR مشخص می‌کند. این گزینه می‌تواند چندین بار مشخص شود تا امکان جستجو در چندین فایل فراهم گردد. اگر هیچ فایلی مشخص نشود، \fBssh-add\fR از فایل‌های پیش‌فرض میزبان‌های شناخته‌شده در \fBssh_config\fR(5) استفاده خواهد کرد: \fI~/.ssh/known_hosts\fR، \fI~/.ssh/known_hosts2\fR، \fI/etc/ssh/ssh_known_hosts\fR و \fI/etc/ssh/ssh_known_hosts2\fR. .TP \fB\-h\fR \fIdestination_constraint\fR هنگام افزودن کلیدها، آن‌ها را مقید می‌سازد تا تنها از طریق میزبان‌های خاص یا برای مقصدهای خاص قابل استفاده باشند. .IP محدودیت‌های مقصد به شکل \fB[user@]dest-hostname\fR استفاده از کلید را تنها از میزبان مبدا (میزبانی که \fBssh-agent\fR(1) را اجرا می‌کند) به میزبان مقصد فهرست‌شده، به همراه نام کاربری اختیاری مجاز می‌سازد. .IP محدودیت‌های به شکل \fBsrc-hostname>[user@]dst-hostname\fR اجازه می‌دهند کلیدی که روی یک \fBssh-agent\fR(1) هدایت‌شده (forwarded) موجود است، از طریق یک میزبان خاص (که با \fBsrc-hostname\fR مشخص شده) برای احراز هویت در میزبان دورتری که با \fBdst-hostname\fR مشخص گردیده، به کار رود. .IP هنگام بارگذاری کلیدها می‌توان چندین قید و محدودیت مقصد اضافه کرد. هنگام تلاش برای احراز هویت با کلیدی که دارای محدودیت‌های مقصد است، کل مسیر اتصال، از جمله هدایت \fBssh-agent\fR(1)، در برابر آن قیدها بررسی می‌شود و هر پرش (hop) باید مجاز باشد تا تلاش برای احراز هویت موفق شود. برای مثال، اگر کلیدی به یک میزبان راه دور به نام \fBhost-b\fR هدایت شود و در تلاش برای احراز هویت در میزبان دیگری به نام \fBhost-c\fR باشد، عملیات تنها در صورتی موفقیت‌آمیز خواهد بود که \fBhost-b\fR از میزبان مبدا مجاز شمرده شده باشد و پرش بعدی \fBhost-b>host-c\fR نیز توسط محدودیت‌های مقصد مجاز باشد. .IP میزبان‌ها بر اساس کلیدهای میزبان خود شناسایی می‌شوند، و توسط \fBssh-add\fR از فایل‌های میزبان‌های شناخته‌شده جستجو می‌گردند. می‌توان از الگوهای نویسه عام (wildcard) برای نام‌های میزبان استفاده کرد و کلیدهای میزبان مبتنی بر گواهی نیز پشتیبانی می‌شوند. به‌طور پیش‌فرض، کلیدهای اضافه‌شده توسط \fBssh-add\fR دارای محدودیت مقصد نیستند. .IP محدودیت‌های مقصد در نگارش OpenSSH 8.9 اضافه شدند. هنگام استفاده از کلیدهای مقید به مقصد از طریق یک کانال هدایت‌شدهٔ \fBssh-agent\fR(1)، پشتیبانی در هر دو کلاینت و سرور راه دور SSH الزامی است. .IP همچنین مهم است بدانید که محدودیت‌های مقصد تنها زمانی می‌توانند توسط \fBssh-agent\fR(1) اعمال شوند که از یک کلید استفاده شود، یا زمانی که توسط یک \fBssh\fR(1) همکار هدایت گردد. به طور مشخص، این ویژگی مانع از آن نمی‌شود که یک مهاجم دارای دسترسی به \fBSSH_AUTH_SOCK\fR راه دور، آن را مجدداً هدایت کرده و در یک میزبان متفاوت استفاده کند (البته تنها برای یک مقصد مجاز). .TP \fB\-K\fR کلیدهای مقیم (resident keys) را از یک احراز هویت‌کننده FIDO بارگذاری می‌کند. .TP \fB\-k\fR هنگام بارگذاری کلیدها در کارگزار یا حذف کلیدها از آن، تنها کلیدهای خصوصی ساده را پردازش کرده و از گواهی‌ها صرف‌نظر می‌کند. .TP \fB\-L\fR پارامترهای کلید عمومی تمام هویت‌هایی را که در حال حاضر توسط کارگزار نگهداری می‌شوند فهرست می‌کند. .TP \fB\-l\fR اثر انگشت تمام هویت‌هایی را که در حال حاضر توسط کارگزار نگهداری می‌شوند فهرست می‌کند. .TP \fB\-N\fR هنگام افزودن گواهی‌ها، به‌طور پیش‌فرض \fBssh-add\fR درخواست می‌کند که کارگزار پس از رسیدن تاریخ انقضای گواهی، آن را به طور خودکار حذف کند. این گزینه این رفتار را لغو کرده و طول عمری برای گواهی‌های اضافه‌شده به کارگزار تعیین نمی‌کند. .TP \fB\-Q\fR کارگزار را برای دریافت فهرست افزونه‌های پروتکلی که پشتیبانی می‌کند پرس‌وجو می‌کند. توجه: همه کارگزارها از این قابلیت پشتیبانی نمی‌کنند. .TP \fB\-q\fR حالت بی‌صدا؛ پس از یک عملیات موفقیت‌آمیز هیچ پیامی نمایش نمی‌دهد. .TP \fB\-S\fR \fIprovider\fR مسیری را به کتابخانه‌ای مشخص می‌کند که هنگام افزودن کلیدهای میزبانی‌شده توسط احراز هویت‌کننده FIDO استفاده خواهد شد، و بر پشتیبانی داخلی پیش‌فرض USB HID اولویت خواهد داشت. .TP \fB\-s\fR \fIpkcs11\fR کلیدهای ارائه‌شده توسط کتابخانه مشترک PKCS#11 به نام \fIpkcs11\fR را اضافه می‌کند. فایل‌های گواهی را می‌توان به‌طور اختیاری به عنوان آرگومان‌های خط فرمان مشخص کرد. در صورت وجود، آن‌ها با استفاده از هر کلید خصوصی متناظر بارگذاری‌شده از توکن PKCS#11، در کارگزار بارگذاری خواهند شد. .TP \fB\-T\fR \fIpubkey\fR ... با انجام عملیات امضا و اعتبارسنجی روی هر یک، بررسی می‌کند که آیا کلیدهای خصوصی متناظر با فایل‌های \fIpubkey\fR مشخص‌شده قابل استفاده هستند یا خیر. .TP \fB\-t\fR \fIlife\fR حداکثر طول عمر را هنگام افزودن هویت‌ها به یک کارگزار تعیین می‌کند. طول عمر را می‌توان بر حسب ثانیه یا با قالبی زمانی که در \fBsshd_config\fR(5) مشخص شده است تعیین کرد. .TP \fB\-v\fR حالت پرحرف (verbose). باعث می‌شود که \fBssh-add\fR پیام‌های اشکال‌زدایی مربوط به پیشرفت کار خود را چاپ کند. این گزینه در اشکال‌زدایی مشکلات بسیار مفید است. مشخص کردن چند گزینهٔ \fB\-v\fR میزان جزئیات را افزایش می‌دهد. حداکثر تعداد مجاز ۳ است. .TP \fB\-X\fR قفل کارگزار را باز می‌کند. .TP \fB\-x\fR کارگزار را با یک گذرواژه قفل می‌کند. .SH "محیط (ENVIRONMENT)" .TP \fBDISPLAY\fR، \fBSSH_ASKPASS\fR و \fBSSH_ASKPASS_REQUIRE\fR اگر \fBssh-add\fR به عبارت عبور نیاز داشته باشد، در صورتی که از یک ترمینال اجرا شده باشد، عبارت عبور را از ترمینال جاری خواهد خواند. اگر \fBssh-add\fR ترمینال مرتبطی نداشته باشد اما متغیرهای \fBDISPLAY\fR و \fBSSH_ASKPASS\fR تنظیم شده باشند، برنامه‌ای را که توسط \fBSSH_ASKPASS\fR مشخص شده است (به‌طور پیش‌فرض \fBssh-askpass\fR) اجرا کرده و یک پنجره X11 برای خواندن عبارت عبور باز می‌کند. این قابلیت به‌ویژه هنگام فراخوانی \fBssh-add\fR از یک فایل \fI.xsession\fR یا اسکریپت مرتبط بسیار کاربردی است. .IP متغیر \fBSSH_ASKPASS_REQUIRE\fR امکان کنترل بیشتر بر استفاده از برنامه askpass را فراهم می‌کند. اگر این متغیر روی \fBnever\fR تنظیم شده باشد، \fBssh-add\fR هرگز تلاشی برای استفاده از آن نخواهد کرد. اگر روی \fBprefer\fR تنظیم شده باشد، \fBssh-add\fR ترجیح می‌دهد هنگام درخواست گذرواژه‌ها به جای TTY از برنامه askpass استفاده کند. در نهایت، اگر این متغیر روی \fBforce\fR تنظیم شده باشد، برنامه askpass برای تمام ورودی‌های عبارت عبور، صرف‌نظر از این‌که \fBDISPLAY\fR تنظیم شده باشد یا خیر، استفاده خواهد شد. .TP \fBSSH_AUTH_SOCK\fR مسیر یک سوکت دامنهٔ یونیکس (Unix-domain socket) را که برای برقراری ارتباط با کارگزار استفاده می‌شود، مشخص می‌کند. .TP \fBSSH_SK_PROVIDER\fR مسیری را به کتابخانه‌ای مشخص می‌کند که هنگام بارگذاری هر کلید میزبانی‌شده توسط احراز هویت‌کننده FIDO استفاده خواهد شد، و بر پشتیبانی داخلی پیش‌فرض USB HID اولویت دارد. .SH "فایل‌ها (FILES)" .TP \fI~/.ssh/id_ecdsa\fR .TQ \fI~/.ssh/id_ecdsa_sk\fR .TQ \fI~/.ssh/id_ed25519\fR .TQ \fI~/.ssh/id_ed25519_sk\fR .TQ \fI~/.ssh/id_mldsa44_ed25519\fR .TQ \fI~/.ssh/id_rsa\fR حاوی هویت احراز هویت ECDSA، ECDSA میزبانی‌شده روی احراز هویت‌کننده، Ed25519، Ed25519 میزبانی‌شده روی احراز هویت‌کننده، MLDSA44-ED25519 یا RSA کاربر است. .PP فایل‌های هویت نباید توسط کسی جز خود کاربر قابل خواندن باشند. توجه داشته باشید که اگر فایل‌های هویت برای دیگران قابل دسترسی باشند، \fBssh-add\fR آن‌ها را نادیده می‌گیرد. .SH "وضعیت خروج (EXIT STATUS)" وضعیت خروج در صورت موفقیت 0، در صورت شکست دستور مشخص‌شده 1، و در صورتی که \fBssh-add\fR نتواند با کارگزار احراز هویت ارتباط برقرار کند 2 است. .SH "همچنین ببینید (SEE ALSO)" \fBssh\fR(1)، \fBssh-agent\fR(1)، \fBssh-askpass\fR(1), \fBssh-keygen\fR(1), \fBsshd\fR(8) .SH "نویسندگان (AUTHORS)" پروژه OpenSSH مشتقی از نگارش اصلی و آزاد ssh 1.2.12 است که توسط Tatu Ylonen منتشر شد. Aaron Campbell، Bob Beck، Markus Friedl، Niels Provos، Theo de Raadt و Dug Song باگ‌های بسیاری را برطرف کردند، ویژگی‌های جدیدتری را افزودند و OpenSSH را به وجود آوردند. Markus Friedl پشتیبانی از نگارش‌های 1.5 و 2.0 پروتکل SSH را توسعه داد.