DROPBEAR(8) System Manager's Manual DROPBEAR(8)

dropbear — کارگزار سبک‌وزن SSH

dropbear [flag arguments] [-b banner] [-r hostkeyfile] [-p [address:]port]

dropbear یک کارگزار کم‌حجم و سبک‌وزن SSH است.

banner
پرونده بنر. نمایش محتوای پرونده banner پیش از ورود کاربر (پیش‌فرض: هیچ).
hostkey
استفاده از محتوای پرونده hostkey برای کلید میزبان SSH. این پرونده با dropbearkey(1) یا به صورت خودکار با گزینه -R ایجاد می‌شود. بخش “پرونده‌های کلید میزبان (Host Key Files)” در ادامه را ببینید.
تولید خودکار کلیدهای میزبان. بخش “پرونده‌های کلید میزبان (Host Key Files)” در ادامه را ببینید.
عدم انشعاب (fork) به پس‌زمینه.
ثبت گزارش‌ها در خروجی استاندارد خطا به جای syslog.
انتقال محیط متغیرهای کارگزار به تمام فرآیندهای فرزند. این گزینه برای نمونه در حالتی که Dropbear بی‌درنگ توسط مدیر بار کاری SLURM اجرا شود، لازم است. محیط به صورت پیش‌فرض منتقل نمی‌شود. توجه داشته باشید که این کار می‌تواند اسرار موجود در متغیرهای محیطی فرآیند فراخوان را افشا کند - با احتیاط استفاده شود.
عدم نمایش پیام روز (message of the day) هنگام ورود.
غیرمجاز کردن ورود کاربر ریشه (root).
غیرفعال کردن ورود با گذرواژه.
غیرفعال کردن ورود با گذرواژه برای کاربر ریشه (root).
فعال‌سازی احراز هویت دو مرحله‌ای. هر دو مورد ورود با گذرواژه و احراز هویت با کلید عمومی الزامی خواهند بود. نباید همراه با گزینه -s استفاده شود.
غیرفعال کردن هدایت درگاه محلی (local port forwarding). این شامل جریان‌های unix نیز می‌شود.
غیرفعال کردن هدایت درگاه راه دور (remote port forwarding).
[address:]port
گوش دادن به address و درگاه TCP port مشخص شده. چنانچه تنها درگاه داده شود، روی تمام نشانی‌ها گوش می‌دهد. حداکثر تا ۱۰ مورد قابل تعیین است (در صورت عدم تعیین، پیش‌فرض ۲۲ است).
interface
گوش دادن روی رابط شبکه interface مشخص شده.
حالت اجرای برنامه‌ای سرویس (Service program mode). استفاده از این گزینه برای اجرای dropbear تحت کارگزارهای TCP/IP مانند inetd، tcpsvd یا tcpserver. در حالت برنامه‌ای، گزینه -F به صورت ضمنی فعال بوده و گزینه‌های -p نادیده گرفته می‌شوند.
pidfile
تعیین یک pidfile جهت ایجاد هنگام اجرا به عنوان دیمن (daemon). در صورت عدم تعیین، پیش‌فرض /var/run/dropbear.pid است.
اجازه به میزبان‌های دوردست جهت اتصال به درگاه‌های هدایت‌شده (forwarded ports).
windowsize
تعیین اندازه بافر پنجره دریافت برای هر کانال. افزایش این مقدار ممکن است کارایی شبکه را به بهای مصرف حافظه بهبود دهد. برای دیدن اندازه بافر پیش‌فرض از -h استفاده کنید.
timeout_seconds
اطمینان از اینکه ترافیک در بازه زمانی مشخصی بر حسب ثانیه ارسال شود (keepalive). این برای دور زدن دیوار‌های آتش یا مسیریاب‌هایی که اتصالات را پس از مدتی بی‌تحرکی قطع می‌کنند مفید است. نقطه ضعف این است که اگر اتصال شبکه موقتاً قطع شود، نشست ممکن است بسته شود. مقدار 0 ارسال پیام‌های زنده نگه‌داشتن را غیرفعال می‌کند. اگر پاسخی برای ۳ پیام پی‌درپی دریافت نشود اتصال بسته خواهد شد.
idle_timeout
قطع اتصال نشست در صورتی که برای مدت idle_timeout ثانیه هیچ ترافیکی ارسال یا دریافت نشود.
تنظیم حداکثر مدت زمان نشست بر حسب ثانیه. تمام نشست‌ها پس از این زمان بسته خواهند شد. اگر تنظیمی در زمان کامپایل اعمال شده باشد (پیش‌فرض هیچ است)، تنظیم -M 0 مهلت زمانی مدت نشست را غیرفعال خواهد کرد.
به صورت پیش‌فرض Dropbear ترافیک شبکه را با تنظیم AF21 برای QoS ارسال می‌کند تا دستگاه‌های شبکه اولویت بالاتری به آن بدهند. ممکن است برخی دستگاه‌ها با این مورد مشکل داشته باشند؛ -z می‌تواند برای غیرفعال کردن آن به کار رود.
max_authentication_attempts
تعیین تعداد تلاش‌های مجاز برای احراز هویت در هر اتصال. در صورت عدم تعیین، پیش‌فرض ۱۰ است (MAX_AUTH_TRIES)
forced_command
نادیده گرفتن دستور/پوسته ارائه‌شده توسط کاربر و اجرای همیشگی forced_command. این گزینه همچنین هر گزینه command= در authorized_keys را لغو می‌کند. دستور اصلی در متغیر محیطی SSH_ORIGINAL_COMMAND ذخیره می‌شود (در ادامه ببینید).

دستور اجباری با استفاده از پوسته عادی کاربر شروع می‌شود، همان‌طور که برای دستورات عادی رخ می‌دهد.

هدایت جریان Unix هنگامی که دستور اجباری تنظیم شده باشد غیرفعال می‌شود، زیرا ممکن است امکان دور زدن دستور اجباری را فراهم کند. سایر ویژگی‌های SSH مانند هدایت TCP همچنان به صورت پیش‌فرض مجاز هستند - ممکن است غیرفعال کردن آن‌ها با گزینه‌های -j یا -k هنگام استفاده از دستور اجباری مطلوب باشد.

authorized_keys_dir
تعیین پوشه مورد استفاده برای پرونده‌های authorized_keys. پیش‌فرض ~/.ssh است؛ مسیرهایی با ~/ در ابتدا به پوشه خانگی گسترش می‌یابند.
algo
پرس‌وجوی الگوریتم‌های پشتیبانی‌شده. گزینه‌ها عبارتند از kex، sig، cipher، mac، compress.
چاپ نگارش برنامه.

کلیدهای مجاز (Authorized Keys)
~/.ssh/authorized_keys می‌تواند برای مجاز ساختن ورود از راه دور با کلیدهای Ed25519 ، RSA یا ECDSA تنظیم شود. پرونده authorized_keys و پوشه والد آن ~/.ssh باید تنها توسط کاربر قابل نوشتن باشند، در غیر این صورت Dropbear اجازه ورود با استفاده از احراز هویت کلید عمومی را نخواهد داد.

هر خط به این صورت است:

[restrictions] ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIgAsp... [comment]

و می‌توان آن را از یک کلید میزبان خصوصی Dropbear با ‘dropbearkey -y’ استخراج کرد. این همان قالبی است که توسط OpenSSH استفاده می‌شود، اگرچه محدودیت‌ها زیرمجموعه‌ای هستند (کلیدهای دارای محدودیت‌های ناشناخته نادیده گرفته می‌شوند). محدودیت‌ها با کاما از هم جدا می‌شوند و آرگومان‌های دارای فاصله داخل گیومه قرار می‌گیرند. محدودیت‌های موجود عبارتند از:

عدم اجازه هدایت درگاه برای این اتصال، از جمله جریان‌های unix.
عدم اجازه هدایت عامل (agent forwarding) برای این اتصال.
عدم اجازه هدایت X11 برای این اتصال.
غیرفعال کردن تخصیص PTY. توجه داشته باشید که کاربر همچنان می‌تواند بیشتر کارایی مشابه را با روش‌های دیگر به دست آورد حتی اگر no-pty تنظیم شده باشد.
اعمال تمام محدودیت‌های no- ذکر شده در بالا.
"host:port"
محدود کردن هدایت درگاه محلی به طوری که اتصال تنها به میزبان و درگاه مشخص‌شده مجاز باشد. چندین گزینه permitopen که با کاما از هم جدا شده‌اند را می‌توان در authorized_keys تنظیم کرد. نویسه عام (‘*’) می‌تواند در مشخصات درگاه برای تطبیق با هر درگاهی استفاده شود. میزبان‌ها باید نام‌های دامنه واقعی یا نشانی‌های IP باشند.
"port"
محدود کردن شنوندگان هدایت درگاه راه دور به درگاه داده‌شده. چندین گزینه permitlisten="port" که با کاما جدا شده‌اند را می‌توان در authorized_keys تنظیم کرد. درگاه می‌تواند 0 باشد تا درگاه گوش دادن به صورت پویا روی کارگزار تخصیص داده شود.
"forced_command"
نادیده گرفتن دستور ارائه‌شده توسط کاربر و اجرای همیشگی forced_command. گزینه خط فرمان -c این مورد را بازنویسی می‌کند. برای رفتار دستورات اجباری به مستندات -c مراجعه کنید.

هنگام استفاده از command= اغلب مطلوب است که از گزینه restrict نیز استفاده شود تا از سایر ویژگی‌های SSH که ممکن است دسترسی‌های اضافی ایجاد کنند جلوگیری شود.

پرونده‌های کلید میزبان (Host Key Files)
پرونده‌های کلید میزبان در زمان راه‌اندازی از یک مکان استاندارد خوانده می‌شوند، به صورت پیش‌فرض: /etc/dropbear/dropbear_dss_host_key ، /etc/dropbear/dropbear_rsa_host_key ، /etc/dropbear/dropbear_ecdsa_host_key و /etc/dropbear/dropbear_ed25519_host_key.

اگر گزینه خط فرمان -r مشخص شود، پرونده‌های پیش‌فرض بارگذاری نمی‌شوند. پرونده‌های کلید میزبان از قالبی هستند که توسط dropbearkey(1) تولید می‌شوند. گزینه -R می‌تواند برای تولید خودکار کلیدها در مکان پیش‌فرض استفاده شود - کلیدها پس از راه‌اندازی هنگامی که نخستین اتصال برقرار شد تولید خواهند شد. این مزیت را دارد که منبع اعداد تصادفی /dev/urandom سیستم شانس بهتری برای مقداردهی امن دارد.

پیام روز (Message Of The Day)
به طور پیش‌فرض پرونده /etc/motd برای هر پوسته ورودی چاپ خواهد شد (مگر اینکه در زمان کامپایل غیرفعال شده باشد). این را می‌توان برای هر کاربر نیز با ایجاد پرونده ~/.hushlogin غیرفعال کرد.

برنامه Dropbear متغیرهای استاندارد USER ، LOGNAME ، HOME ، SHELL ، PATH و TERM را تنظیم می‌کند.

متغیرهای زیر بر حسب نیاز برای نشست‌ها تنظیم می‌شوند:

اگر از PTY استفاده شده باشد، این متغیر روی TTY تخصیص‌یافته تنظیم می‌شود.
شامل ‘<remote_ip> <remote_port> <local_ip> <local_port>’ است.
در صورت استفاده از هدایت X11 تنظیم می‌شود.
اگر از گزینه command= در authorized_keys استفاده شده باشد، دستور اصلی در این متغیر مشخص می‌شود. در صورتی که یک پوسته درخواست شده باشد، مقدار آن خالی خواهد بود.
روی اتصال هدایت‌شده ssh-agent تنظیم می‌شود.

برنامه Dropbear تنها از پروتکل SSH نگارش 2 پشتیبانی می‌کند.

dbclient(1), dropbearconvert(1), dropbearkey(1)

https://matt.ucc.asn.au/dropbear/dropbear.html

Matt Johnston <matt@ucc.asn.au>. Gerrit Pape <pape@smarden.org> این صفحه راهنما را نوشته است.

February 1, 2023 Linux 6.12.107+deb13-amd64