hussh(1) General Commands Manual hussh(1) نام (NAME) hussh - دیمن SSH ایمن از نظر حافظه برای هدایت محدود TCP خلاصه دستور (SYNOPSIS) hussh [گزینه‌ها] توضیحات (DESCRIPTION) دستور hussh یک سرور حداقلی SSH است که فقط بازارسال TCP ("direct-tcpip") را پیاده‌سازی می‌کند. این ابزار برای استفاده به عنوان تونل، پروکسی یا میزبان پرش (jump host) محدود SSH طراحی شده است که در آن نشست‌های ورود تعاملی و اجرای فرمان از راه دور مورد نیاز یا مطلوب نیستند. تنها احراز هویت با کلید عمومی پشتیبانی می‌شود و ورود با گذرواژه هرگز پذیرفته نخواهد شد. یک حالت اختیاری هانی‌پات (honeypot) با تعامل اندک می‌تواند تلاش‌های ناخواسته احراز هویت با گذرواژه را ثبت یا گزارش کند. نشست‌های شل تعاملی، تخصیص PTY و اجرای فرمان از راه دور همگی به طور صریح پشتیبانی نمی‌شوند. به طور پیش‌فرض، hussh به `[::]:2` متصل می‌شود و در پیش‌زمینه اجرا می‌گردد. گزینه‌ها (OPTIONS) -c, --config مسیر مسیر فایل پیکربندی TOML. برای حالت دیمن الزامی است. -B, --bind نشانی نشانی برای اتصال (نشانی سوکت). نمونه: `[::]:22` -K, --keygen تولید یک کلید خصوصی Ed25519 در قالب OpenSSH و چاپ آن در stdout، سپس خروج. -v, --verbose افزایش سطح جزئیات لاگ. برای افزایش بیشتر جزئیات تکرار کنید. --help نمایش راهنمای دستور و خروج. --version نمایش نسخه و خروج. پیکربندی (CONFIGURATION) محل پیش‌فرض فایل پیکربندی /etc/hussh.conf است. یک پیکربندی حداقلی به شکل زیر خواهد بود: [[rules]] ssh_keys = [ "ssh-ed25519 AAAAC3Nyourkeyhere", ] # مقصدهای مجاز برای اتصال permit = ["*"] یک پیکربندی مفصل‌تر می‌تواند به شکل زیر باشد: [sshd] # تغییر نشانی اتصال ssh (پورت 22 روی ipv4 + ipv6) bind_addr = "[::]:22" [[rules]] # به جای اجازه دادن به هر نام کاربری، یک مقدار مشخص الزامی است username = "proxy" ssh_keys = [ "ssh-ed25519 AAAAC3Nyourkeyhere", "ssh-ed25519 AAAAC3Nanotherkey", ] # مقصدهای مجاز برای اتصال permit = [ # همه پورت‌ها در مقصدهای مشخص "example.com:*", "127.0.0.1:*", # پالایش بر اساس پورت "*:443", ] # اگر قاعده قبلی مطابقت نداشت، این قاعده را بررسی کن: [[rules]] ssh_keys = [ "ssh-ed25519 AAAAC3Nyourkeyhere", ] permit = [ # فقط به مکان‌های مشخص اجازه داده شود "127.0.0.1:8080", "[::1]:8080", ] نحو قوانین (RULES SYNTAX) گزینه permit= هم مقصدهای مشخص و هم عبارات عامه‌نما (wildcard) را مجاز می‌شمارد. موارد زیر معتبر هستند: HOST:PORT, IP:PORT تطابق دقیق نشانی IP یا نام میزبان و شماره پورت. نمونه: example.com:443, 127.0.0.1:22, [::1]:22 HOST:*, IP:* تطابق دقیق نشانی IP یا نام میزبان و هر شماره پورتی. نمونه: example.com:*, 127.0.0.1:*, [::1]:* *:PORT هر میزبان یا نشانی IP، ولی تطابق دقیق شماره پورت. نمونه: *:443 *:*, * هر میزبان یا نشانی IP و هر شماره پورتی. همچنین می‌تواند به اختصار به صورت * نوشته شود. نمونه: *:*, * مثال‌های کلاینت اس‌اس‌اچ (SSH CLIENT EXAMPLES) راه‌اندازی به عنوان میزبان پرش (jump host) برای دومین دیمن SSH که فقط روی localhost فعال است: cat >> ~/.ssh/config <