DBCLIENT(1) General Commands Manual DBCLIENT(1)

dbclient — کلاینت سبک SSH

dbclient [flag arguments] [-p port] [-i id] [-L l:h:p] [-R l:h:p] [-l user] host [more flags] [command]

dbclient [args] [user1]@host1[^port1],[user2]@host2[^port2],...

dbclient بخش کلاینت Dropbear SSH است.

command
دستوری برای اجرا روی میزبان راه دور. این دستور معمولاً توسط میزبان راه دور با استفاده از پوسته کاربر اجرا خواهد شد. دستور از نخستین آرگومان دارای خط تیره پس از آرگومان میزبان آغاز می‌شود. در صورتی که هیچ دستوری مشخص نشود، یک ترمینال تعاملی باز خواهد شد (به -t و -T مراجعه کنید).
port
اتصال به port (پورت) روی میزبان راه دور. همچنین می‌توان پورت را به صورت hostname^port مشخص کرد. مقدار پیش‌فرض 22 است.
idfile
فایل هویت (شناسایی). کلید هویت را از فایل idfile می‌خواند (مشخص کردن چند فایل مجاز است). این فایل با dropbearkey(1) ایجاد می‌شود یا از OpenSSH به کمک dropbearconvert(1) تبدیل می‌گردد. مسیر پیش‌فرض ~/.ssh/id_dropbear مورد استفاده قرار می‌گیرد.
[listenaddress]:listenport:host:port
هدایت پورت محلی (Local port forwarding). پورت listenport روی میزبان محلی را از طریق اتصال SSH به port روی host هدایت می‌کند.
[listenaddress]:listenport:host:port
هدایت پورت راه دور (Remote port forwarding). پورت listenport روی میزبان راه دور را از طریق اتصال SSH به port روی host هدایت می‌کند.
user
نام کاربری. ورود به عنوان user روی میزبان راه دور. روش جایگزین، مشخص کردن به صورت user@host است.
تخصیص یک PTY (شبه‌ترمینال). این حالت پیش‌فرض در صورت مشخص نشدن دستور است و یک نشست راه دور کاملاً تعاملی فراهم می‌کند. اثر اصلی آن این است که کلیدهای فشرده‌شده بلافاصله به ماشین راه دور ارسال می‌شوند، بر خلاف ویرایش محلی خط‌به‌خط.
عدم تخصیص PTY. این حالت پیش‌فرض در زمان ارائه یک دستور مشخص است. به -t مراجعه کنید.
عدم درخواست پوسته راه دور یا اجرای هرگونه دستور. هرگونه آرگومان مربوط به دستور نادیده گرفته می‌شود.
رفتن به پس‌زمینه (انشعاب فرایند) پس از احراز هویت. ارائه یک آرگومان دستور (یا -N) الزامی است. این گزینه هنگام استفاده از احراز هویت با گذرواژه مفید است.
اجازه به میزبان‌های غیرمحلی برای اتصال به پورت‌های هدایت‌شده. این گزینه بر پورت‌های هدایت‌شده با -L و -R اعمال می‌شود، هرچند اتصالات راه دور به پورت‌های هدایت‌شده با -R ممکن است توسط سرور ssh محدود شده باشد.
پذیرش همیشگی کلیدهای میزبان در صورت ناشناخته بودن آن‌ها. اگر عدم تطابق در کلید میزبان رخ دهد، اتصال مطابق معمول لغو خواهد شد. اگر این گزینه دو بار مشخص شود، هیچ‌گونه بررسی کلید میزبان انجام نخواهد شد، که معمولاً وضعیتی نامطلوب و ناامن است.
هدایت اتصالات عامل (Agent) به میزبان راه دور. در صورت موجود بودن، dbclient از هر برنامه عامل به سبک OpenSSH استفاده خواهد کرد (متغیر SSH_AUTH_SOCK تنظیم خواهد شد) برای احراز هویت کلید عمومی. هدایت عامل تنها در صورتی فعال می‌شود که -A مشخص شده باشد.

توجه داشته باشید که هدایت اتصال عامل به سرور راه دور اجازه می‌دهد به همان اطلاعات اعتبارسنجی احراز هویتی که به صورت محلی استفاده کرده‌اید دسترسی پیدا کند. یک سرور راه دور نفوذ‌یافته می‌تواند از این امکان برای ورود به سرورهای دیگر استفاده کند.

در بسیاری از شرایط، حالت چندجهشی Dropbear جایگزین بهتر و امن‌تری برای هدایت عامل است و نیاز به اعتماد به سرور میانی را برطرف می‌کند.

اگر برنامه عامل SSH طوری تنظیم شده باشد که هنگام استفاده از یک کلید اعلان تأیید نمایش دهد، گزینه -o DisableTrivialAuth می‌تواند از سردرگمی در رابط کاربری جلوگیری کند.

windowsize
تعیین اندازه بافر پنجره دریافت برای هر کانال. افزایش این مقدار ممکن است عملکرد شبکه را به بهای مصرف حافظه بیشتر بهبود بخشد. از گزینه -h برای مشاهده اندازه بافر پیش‌فرض استفاده کنید.
timeout_seconds
اطمینان از ارسال ترافیک در فواصل زمانی معین بر حسب ثانیه (Keepalive). این گزینه برای دور زدن فایروال‌ها یا روترهایی که اتصالات را پس از مدتی بی‌تحرکی قطع می‌کنند مفید است. نکته منفی آن این است که در صورت بروز قطعی موقت در اتصال شبکه، نشست ممکن است بسته شود. تنظیم مقدار 0 ارسال بسته‌های زنده نگه داشتن اتصال را غیرفعال می‌کند. اگر برای ۳ درخواست زنده نگه‌داری متوالی پاسخی دریافت نشود، اتصال بسته خواهد شد.
idle_timeout
قطع نشست در صورتی که هیچ ترافیکی به مدت idle_timeout ثانیه ارسال یا دریافت نشود.
به‌طور پیش‌فرض Dropbear ترافیک شبکه را با تنظیم AF21 برای QoS ارسال می‌کند تا دستگاه‌های شبکه اولویت بالاتری به آن اختصاص دهند. برخی دستگاه‌ها ممکن است با این ویژگی مشکل داشته باشند؛ می‌توان از -z برای غیرفعال کردن آن استفاده کرد.
proxy_command | &fd
استفاده از ورودی/خروجی استاندارد برنامه proxy_command به جای استفاده از یک اتصال معمولی TCP. همچنان باید یک نام میزبان ارائه شود، زیرا از آن برای مقایسه کلیدهای ذخیره‌شده میزبان استفاده می‌شود. این دستور به صورت ‘exec proxy_command ...’ توسط پوسته پیش‌فرض اجرا خواهد شد.

شکل دوم &fd باعث می‌شود dbclient از توصیف‌گر فایل عددی به عنوان سوکت استفاده کند. این قابلیت برای سناریوهای تونل‌زنی پیچیده‌تر کاربرد دارد. یک نمونه استفاده با socat عبارت است از:

socat EXEC:'dbclient -J &38 ev',fdin=38,fdout=38 TCP4:host.example.com:22
endhost:endport
حالت شبیه Netcat، که در آن Dropbear به میزبان داده‌شده متصل می‌شود، سپس یک اتصال هدایت‌شده به endhost ایجاد می‌کند. این اتصال سپس به عنوان ورودی/خروجی استاندارد dbclient ارائه خواهد شد.
cipherlist
تعیین فهرستی از الگوریتم‌های رمزنگاری (Ciphers) مجاز که با کاما از هم جدا شده‌اند. برای مشاهده گزینه‌های ممکن از -c help استفاده کنید.
MAClist
تعیین فهرستی از کدهای اصالت‌سنجی پیام (MAC) مجاز برای احراز هویت که با کاما از هم جدا شده‌اند. برای مشاهده گزینه‌های ممکن از -m help استفاده کنید.
option
می‌تواند برای ارائه گزینه‌ها در قالب مورد استفاده در فایل پیکربندی OpenSSH استفاده شود. این قابلیت برای مشخص کردن گزینه‌هایی مفید است که فلگ خط فرمان مجزایی برای آن‌ها وجود ندارد. برای جزئیات کامل گزینه‌های فهرست‌شده در زیر و مقادیر مجاز آن‌ها، به ssh_config(5) مراجعه کنید. آرگومان‌های yes/no همچنین مقادیر y/n را می‌پذیرند.

گزینه‌های زیر در حال حاضر پیاده‌سازی شده‌اند:

غیرفعال کردن اعلان‌های تعاملی مانند درخواست گذرواژه و تأیید کلید میزبان. آرگومان باید yes یا no (پیش‌فرض) باشد.
تعیین آدرس و پورت روی ماشین محلی به عنوان آدرس مبدأ اتصال.
می‌تواند روی yes یا no تنظیم شود. حالت پیش‌فرض بدون فشرده‌سازی است (با گزینه‌های ساخت پیش‌فرض). فعال کردن فشرده‌سازی در برخی شرایط می‌تواند یک نقطه‌ضعف امنیتی باشد، زیرا اندازه ترافیک شبکه ممکن است اطلاعاتی درباره داده‌های رمزگذاری‌شده فاش کند.

فشرده‌سازی تنها زمانی استفاده خواهد شد که سرور نیز از آن پشتیبانی کند.

جلوگیری از تأیید فوری و بدون درنگ احراز هویت توسط سرور (بدون نمایش هیچ‌گونه درخواست گذرواژه یا کلید عمومی). این ویژگی از بروز سردرگمی در رابط کاربری جلوگیری می‌کند؛ در مواردی که ممکن است به نظر برسد کاربر در حال پذیرش درخواست عامل SSH از ماشین محلی خود است، اما در واقع در حال پذیرش درخواستی است که بلافاصله توسط سرور راه دور ارسال شده است.
مشخص می‌کند که آیا dbclient در صورت ناتوانی در برقراری تمامی هدایت‌های پورت محلی و راه دور درخواست‌شده، باید اتصال را خاتمه دهد یا خیر. آرگومان باید yes یا no (پیش‌فرض) باشد.
هدایت عامل احراز هویت به ماشین راه دور. آرگومان باید yes یا no (پیش‌فرض) باشد.
اجازه به میزبان راه دور برای اتصال به پورت‌های هدایت‌شده محلی. آرگومان باید yes یا no (پیش‌فرض) باشد.
تعیین مسیر فایل هویت احراز هویت.
اجازه درخواست گذرواژه از کاربر. در صورتی که متغیر محیطی DROPBEAR_PASSWORD تعیین شده باشد، همچنان استفاده خواهد شد. آرگومان باید yes (پیش‌فرض) یا no باشد.
تعیین پورت شنود، مانند آرگومان -p.
تعیین دستور پروکسی برای اتصال به سرور.
تعیین فاصله زمانی بر حسب ثانیه میان پیام‌های زنده نگه‌داری (keep-alive) از طریق کانال رمزگذاری‌شده. مقدار پیش‌فرض 0 (غیرفعال) است.
استفاده از yes برای رد اتصال به میزبان‌هایی که کلید میزبان آن‌ها از قبل در known_hosts به‌درستی ثبت نشده است. ورودی‌ها باید به صورت دستی به known_hosts اضافه شوند.

استفاده از no برای نادیده گرفتن بررسی کلید در known_hosts.

استفاده از accept-new برای افزودن کلیدهای جدید میزبان به known_hosts و رد اتصال در صورتی که کلید میزبان تغییر کرده باشد.

مقدار ask پیش‌فرض است.

ارسال پیام‌های گزارش dbclient علاوه بر stderr به syslog.
دستور مشخص‌شده به عنوان یک زیرسیستم (subsystem) درخواست خواهد شد، که برای sftp کاربرد دارد. Dropbear خودش sftp را پیاده‌سازی نمی‌کند، اما می‌توان از کلاینت sftp متعلق به OpenSSH استفاده کرد؛ مانند:
sftp -S dbclient user@host
[address][:port]
اتصال به یک آدرس محلی خاص هنگام برقراری ارتباط با میزبان راه دور. این گزینه می‌تواند برای انتخاب از میان چندین رابط شبکه خروجی استفاده شود. می‌توان آدرس یا پورت (یا هر دو) را مشخص کرد.
algo
پرس‌وجوی الگوریتم‌های پشتیبانی‌شده. گزینه‌ها عبارتند از kex، sig، cipher، mac، compress.
چاپ نگارش برنامه

نرم‌افزار Dropbear همچنین امکان تعیین چند «جهش» (hop) را که با کاما از هم جدا شده‌اند، فراهم می‌کند. در این حالت اتصالی به نخستین میزبان برقرار می‌شود، سپس یک اتصال هدایت‌شده TCP از طریق آن به میزبان دوم برقرار خواهد شد و به همین ترتیب ادامه می‌یابد. میزبان‌هایی غیر از مقصد نهایی، چیزی جز جریان رمزگذاری‌شده SSH مشاهده نخواهند کرد. پورت برای یک میزبان را می‌توان با یک علامت توان (caret) مشخص کرد (مانند matt@martello^44). این نحو نگارش را می‌توان با scp یا rsync نیز به کار برد (با تعیین dbclient به عنوان دستور ssh/rsh). یک فایل را می‌توان از میان چندین جهش SSH عبور داد؛ مانند:

scp -S dbclient matt@martello,root@wrt,canyons:/tmp/dump .

توجه داشته باشید که نام‌های میزبان توسط جهش قبلی تحلیل و حل می‌شوند (بنابراین "canyons" در مثال بالا توسط میزبان "wrt" تحلیل خواهد شد)، درست همانند سایر میزبان‌های هدایت‌شده TCP با -L. کلیدهای میزبان بر اساس نام میزبان داده‌شده به صورت محلی بررسی می‌شوند.

فشردن یک خط جدید و به دنبال آن توالی کلید ‘~.’ (تیلدا، نقطه) اتصال را قطع می‌کند. توالی ‘~^Z’ (تیلدا، ctrl-z) اتصال را به پس‌زمینه می‌برد. این رفتار تنها در صورت استفاده از PTY اعمال می‌شود.

‘~R’ فرایند تبادل مجدد کلیدهای موقت نشست را انجام می‌دهد.

گذرواژه مورد استفاده برای احراز هویت راه دور را می‌توان در متغیر محیطی DROPBEAR_PASSWORD مشخص کرد. باید مراقبت شود که گذرواژه در یک سیستم چندکاربره در معرض دید سایر کاربران قرار نگیرد یا در فایل‌های دردسترس ذخیره نشود.
برنامه dbclient می‌تواند از یک برنامه خارجی برای درخواست گذرواژه از کاربر استفاده کند. متغیر SSH_ASKPASS باید روی مسیر برنامه‌ای تنظیم شود که گذرواژه را در خروجی استاندارد بازمی‌گرداند. این برنامه تنها در صورتی استفاده خواهد شد که متغیر DISPLAY تنظیم شده باشد و ورودی استاندارد یک TTY نباشد، یا اینکه متغیر محیطی SSH_ASKPASS_ALWAYS تنظیم شده باشد.

~/.ssh/dropbear_config
این فایل پیکربندی ویژه هر کاربر است. زیرمجموعه بسیار محدودی از کلیدواژه‌های ssh_config(5) پشتیبانی می‌شود، و هیچ‌یک از ویژگی‌های پیشرفته در دسترس نیست. این فایل شامل جفت‌های کلید و مقدار در یک خط واحد است که با فاصله یا ‘=’ از یکدیگر جدا شده‌اند. خطوط خالی نادیده گرفته می‌شوند. متنی که با ‘#’ آغاز شود توضیح (کامنت) تلقی شده و نادیده گرفته می‌شود.

در صورت استفاده از اتصال چندجهشی، این فایل در نظر گرفته نمی‌شود. مقادیر موجود در خط فرمان بر مقادیر متناظر در این فایل اولویت دارند.

کلیدواژه‌های شناخته‌شده به شرح زیر هستند. کلیدواژه‌ها و مقادیر به بزرگی و کوچکی حروف حساس نیستند (case insensitive).

گزینه‌هایی را تعریف می‌کند که در صورت تطابق این مقدار با میزبان مشخص‌شده در خط فرمان، اعمال خواهند شد. ورودی بعدی Host یا EOF (پایان فایل)، فهرست گزینه‌های قابل اعمال را مشخص می‌کند.
نام واقعی میزبان را برای اتصال مشخص می‌کند. می‌تواند نام DNS یا آدرس IP باشد.
شماره پورت مورد استفاده برای اتصال به میزبان راه دور را مشخص می‌کند.
نام کاربری را برای ورود مشخص می‌کند.
فایل حاوی کلید خصوصی مورد استفاده برای احراز هویت کلید عمومی با میزبان راه دور را مشخص می‌کند. این فایل باید در قالب Dropbear باشد. برای ایجاد آن به dropbearkey(1) مراجعه کنید. ~/ در ابتدای مسیر، به دایرکتوری خانگی کاربر اجراکننده گسترش می‌یابد. مسیری که با / شروع نشود، نسبی به دایرکتوری این فایل پیکربندی در نظر گرفته خواهد شد. در غیر این صورت، مسیر همان‌طور که هست استفاده می‌شود.

از آنجا که این فایل شامل اطلاعات محرمانه است، باید مجوزهای سخت‌گیرانه‌ای برای جلوگیری از سوءاستفاده داشته باشد: خواندن/نوشتن منحصراً برای کاربر اجراکننده و عدم دسترسی برای سایر کاربران.

اگر با پشتیبانی از zlib کامپایل شده باشد و سرور نیز از آن پشتیبانی کند، dbclient همواره از فشرده‌سازی استفاده خواهد کرد.

dropbearkey(1), dropbear(8)

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

Matt Johnston <matt@ucc.asn.au>. Mihnea Stoenescu پشتیبانی اولیه کلاینت Dropbear را نوشت. Gerrit Pape <pape@smarden.org> این صفحه راهنما را نگاشت.

February 1, 2023 Linux 6.12.107+deb13-amd64