| SSH-AGENT(1) | General Commands Manual | SSH-AGENT(1) |
نام (NAME)
ssh-agent —
کارگزار
احراز هویت
OpenSSH
خلاصه دستور (SYNOPSIS)
ssh-agent [-c |
-s] [-DdTU]
[-a bind_address]
[-E fingerprint_hash]
[-O option]
[-P allowed_providers]
[-t life]
ssh-agent [-TU]
[-a bind_address]
[-E fingerprint_hash]
[-O option]
[-P allowed_providers]
[-t life]
command [arg ...]
ssh-agent [-c |
-s] -k
ssh-agent -u
ssh-agent -V
توضیحات (DESCRIPTION)
ssh-agent
برنامهای
برای
نگهداری
کلیدهای
خصوصی مورد
استفاده در
احراز هویت
با کلید
عمومی است.
از طریق
استفاده از
متغیرهای
محیطی،
کارگزار
میتواند
مکانیابی
شده و هنگام
ورود به
ماشینهای
دیگر با
استفاده از
ssh(1)
بهطور
خودکار
برای احراز
هویت به کار
گرفته شود.
گزینهها به شرح زیر هستند:
-abind_address- متصل کردن کارگزار به سوکت دامنهٔ UNIX در نشانی bind_address. حالت پیشفرض، ایجاد یک سوکت در مسیری تصادفی منطبق بر $HOME/.ssh/agent/s.* است.
-c- تولید
دستورهای C-shell
در خروجی
استاندارد.
اگر متغیر
SHELLشبیه به پوستهای از نوع csh باشد، این حالت پیشفرض است. -D- حالت
پیشزمینه.
هنگامی که
این گزینه
مشخص شود،
ssh-agentمنشعب (fork) نخواهد شد. -d- حالت
اشکالزدایی.
هنگامی که
این گزینه
مشخص شود،
ssh-agentمنشعب (fork) نخواهد شد و اطلاعات اشکالزدایی را در خروجی استاندارد خطا مینویسد. -Efingerprint_hash- الگوریتم درهمسازی (هش) مورد استفاده هنگام نمایش اثر انگشت کلید را مشخص میکند. گزینههای معتبر عبارتند از: “md5” و “sha256”. مقدار پیشفرض “sha256” است.
-k- متوقف کردن
(kill) کارگزار
فعلی (که
توسط متغیر
محیطی
SSH_AGENT_PIDمشخص شده است). -Ooption- تعیین یک
گزینه
هنگام
راهاندازی
ssh-agent. گزینههای پشتیبانیشده عبارتند از:allow-remote-pkcs11,no-restrict-websafeوwebsafe-allow.گزینهٔ
allow-remote-pkcs11به کلاینتهای یکssh-agentبازارسالشده (forwarded) اجازه میدهد کتابخانههای ارائهدهندهٔ PKCS#11 یا FIDO را بارگذاری کنند. بهطور پیشفرض تنها کلاینتهای محلی مجاز به انجام این عملیات هستند. توجه داشته باشید که اعلام راه دور (remote) بودن کلاینتِssh-agentتوسط ssh(1) انجام میشود، و استفاده از سایر ابزارها برای بازارسال دسترسی به سوکت کارگزار ممکن است این محدودیت را دور بزند.گزینهٔ
no-restrict-websafeبهssh-agentدستور میدهد تا امضاها با استفاده از کلیدهای FIDO را که ممکن است درخواستهای احراز هویت وب باشند، مجاز بداند. بهطور پیشفرض،ssh-agentدرخواستهای امضا برای کلیدهای FIDO را که در آنها رشتهٔ کاربرد کلید با “ssh:” شروع نمیشود و دادههایی که قرار است امضا شوند شبیه به یک درخواست احراز هویت کاربر در ssh(1) یا امضای ssh-keygen(1) نیستند، رد میکند. رفتار پیشفرض از این امر جلوگیری میکند که دسترسی بازارسالشده به یک کلید FIDO، توانایی احراز هویت در وبسایتها را نیز بهطور ضمنی منتقل کند.بهعنوان روشی جایگزین، گزینهٔ
websafe-allowامکان تعیین یک فهرست الگو از رشتههای کاربرد کلید را برای جایگزینی با فهرست مجاز پیشفرض برنامهها فراهم میکند؛ برای نمونه: “websafe-allow=ssh:*,example.org,*.example.com”برای شرح نحو فهرست الگو، بخش PATTERNS را در ssh_config(5) ببینید.
-Pallowed_providers- یک فهرست
الگو از
مسیرهای
قابل قبول
برای
کتابخانههای
اشتراکی
میانافزار
احراز
هویتکنندهٔ
FIDO و
ارائهدهندهٔ
PKCS#11 را مشخص
میکند که
ممکن است با
گزینههای
-Sیا-sدر ssh-add(1) استفاده شوند. کتابخانههایی که با این فهرست الگو مطابقت نداشته باشند، رد خواهند شد. فهرست پیشفرض “/usr/lib*/*,/usr/local/lib*/*” است.برای شرح نحو فهرست الگو، بخش PATTERNS را در ssh_config(5) ببینید.
-s- تولید
دستورهای Bourne
shell در خروجی
استاندارد.
اگر متغیر
SHELLشبیه به پوستهای از نوع csh نباشد، این حالت پیشفرض است. -T- متصل کردن سوکت کارگزار درون یک زیردایرکتوری تصادفی به شکل $TMPDIR/ssh-XXXXXXXXXX/agent.<ppid> ، بهجای رفتار پیشفرض که استفاده از یک نام تصادفی منطبق بر $HOME/.ssh/agent/s.* است.
-tlife- تنظیم یک مقدار پیشفرض برای حداکثر طول عمر هویتهای اضافهشده به کارگزار. طول عمر میتواند بر حسب ثانیه یا با قالبی زمانی طبق مشخصات ارائهشده در sshd_config(5) تعیین شود. طول عمر مشخصشده برای یک هویت با ssh-add(1) این مقدار را باطل میکند. بدون این گزینه، حداکثر طول عمر پیشفرض بهصورت نامحدود (همیشگی) خواهد بود.
-U- به
ssh-agentدستور میدهد که سوکتهای قدیمی و بیاستفادهٔ کارگزار را در $HOME/.ssh/agent/ پاکسازی نکند. -u- به
ssh-agentدستور میدهد که تنها سوکتهای قدیمی و بیاستفادهٔ کارگزار را در $HOME/.ssh/agent/ پاکسازی کرده و سپس بیدرنگ خارج شود. اگر این گزینه دو بار داده شود،ssh-agentسوکتهای قدیمی کارگزار را صرفنظر از نام میزبان ایجادکنندهٔ آنها حذف خواهد کرد. - command [arg ...]
- اگر یک دستور (و آرگومانهای اختیاری) داده شود، بهعنوان یک زیرفرآیند از کارگزار اجرا میشود. کارگزار با پایان یافتن دستوری که در خط فرمان داده شده، بهطور خودکار خارج میشود.
-V- نمایش شماره نسخه و خروج.
سه روش
اصلی برای
راهاندازی
کارگزار
وجود دارد.
روش نخست در
آغاز یک
نشست
گرافیکی X
است،
بهطوری که
تمام
پنجرهها
یا
برنامههای
دیگر
بهعنوان
فرزندان
برنامهٔ
ssh-agent
راهاندازی
میشوند.
کارگزار
دستوری را
آغاز
میکند که
متغیرهای
محیطیاش
تحت آن صادر
میشوند؛
برای نمونه
ssh-agent xterm &. با
پایان
یافتن
دستور،
کارگزار
نیز پایان
مییابد.
روش دوم
برای یک
نشست ورود
به سیستم به
کار میرود.
هنگامی که
ssh-agent آغاز
میشود،
دستورهای
پوستهای
را که برای
تنظیم
متغیرهای
محیطیاش
لازم است
چاپ
میکند؛
این
دستورها به
نوبهٔ خود
میتوانند
در پوستهٔ
فراخوان
ارزیابی و
اجرا شوند،
برای نمونه
eval `ssh-agent -s`.
در هر دو مورد، ssh(1) این متغیرهای محیطی را بررسی میکند و از آنها برای برقراری ارتباط با کارگزار بهره میبرد.
روش سوم
برای اجرای
ssh-agent از
طریق
فعالسازی
سوکت (socket activation)
توسط یک
فرآیند
ناظر مانند
systemd است. در این
حالت،
فرآیند
ناظر سوکت
شنونده را
ایجاد
میکند و
مسئول
راهاندازی
ssh-agent در
صورت نیاز،
و همچنین
اطلاعرسانی
مکان سوکت
شنونده به
سایر
برنامههای
نشست کاربر
است.
فعالسازی
سوکت زمانی
استفاده
میشود که
ssh-agent با هر
یک از
فلگهای
-d یا -D
آغاز شود،
هیچ نشانی
شنود سوکتی
با فلگ -a
مشخص نشده
باشد، و هر
دو متغیر
محیطی LISTEN_FDS
و LISTEN_PID
بهدرستی
توسط
فرآیند
ناظر ارائه
شده باشند.
کارگزار
در ابتدا
فاقد
هرگونه
کلید خصوصی
است. کلیدها
با استفاده
از ssh-add(1)
یا توسط
ssh(1) در
صورت تنظیم
AddKeysToAgent در
ssh_config(5)
اضافه
میشوند.
چندین هویت
میتوانند
بهطور
همزمان در
ssh-agent ذخیره
شوند و
ssh(1) در
صورت وجود،
بهطور
خودکار از
آنها
استفاده
خواهد کرد.
همچنین از
ssh-add(1)
برای حذف
کلیدها از
ssh-agent و
استعلام
کلیدهای
نگهداریشده
در آن
استفاده
میشود.
اتصالات
به ssh-agent
میتوانند
با استفاده
از گزینهٔ
-A در
ssh(1) (اما
هشدارهای
مستندشده
در آن را
ملاحظه
کنید) از
سایر
میزبانهای
راه دور
بازارسال
شوند، که
نیاز به
ذخیرهٔ
دادههای
احراز هویت
در
ماشینهای
دیگر را از
بین میبرد.
عبارتهای
عبور و
کلیدهای
خصوصی
احراز هویت
هرگز از
شبکه عبور
نمیکنند:
اتصال به
کارگزار از
طریق
اتصالات
راه دور SSH
بازارسال
میشود و
نتیجه به
درخواستکننده
بازگردانده
میشود، که
به کاربر
امکان
میدهد به
شیوهای
امن در هر
کجای شبکه
به
هویتهای
خود دسترسی
داشته
باشد.
ssh-agent با
دریافت
سیگنال
SIGUSR1 تمام
کلیدهایی
را که
بارگذاری
کرده است
حذف خواهد
کرد.
محیط (ENVIRONMENT)
SSH_AGENT_PID- هنگامی که
ssh-agentآغاز میشود، شناسهٔ فرآیند (PID) کارگزار را در این متغیر ذخیره میکند. SSH_AUTH_SOCK- هنگامی که
ssh-agentآغاز میشود، یک سوکت دامنهٔ UNIX ایجاد کرده و مسیر آن را در این متغیر ذخیره میکند. این سوکت تنها برای کاربر جاری قابل دسترسی است، اما بهسادگی توسط ریشه (root) یا نمونهٔ دیگری از همان کاربر قابل سوءاستفاده است.
فایلها (FILES)
- $HOME/.ssh/agent/s.*
- سوکتهای دامنهٔ UNIX که برای برقراری ارتباط با کارگزار احراز هویت استفاده میشوند. این سوکتها تنها باید توسط مالک قابل خواندن باشند. سوکتها باید هنگام خروج کارگزار بهطور خودکار حذف شوند.
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
OpenSSH مشتقی از نگارش اصلی و آزاد ssh 1.2.12 است که توسط Tatu Ylonen منتشر شده بود. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt و Dug Song اشکالات متعددی را برطرف کرده، امکانات جدیدتری افزودند و OpenSSH را پدید آوردند. Markus Friedl پشتیبانی از پروتکل SSH نسخههای 1.5 و 2.0 را اضافه کرد.
| May 27, 2026 | Linux 6.12.107+deb13-amd64 |