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

tinysshd - دیمن کوچک، مینیمال و امن SSH

tinysshd [ گزینه‌ها ] keydir

tinysshd یک سرور مینیمال SSH است که تنها زیرمجموعه‌ای از ویژگی‌های پروتکل SSHv2 را پیاده‌سازی می‌کند.

tinysshd تنها از رمزنگاری امن پشتیبانی می‌کند (حداقل امنیت ۱۲۸ بیتی، محافظت‌شده در برابر حملات زمان‌بندی حافظه نهان).

tinysshd الگوریتم‌های رمزنگاری قدیمی‌تر را پیاده‌سازی نمی‌کند (مانند RSA، DSA، HMAC-MD5، HMAC-SHA1، 3DES، RC4 و غیره).

tinysshd قابلیت‌های ناامن را پیاده‌سازی نمی‌کند (مانند احراز هویت مبتنی بر گذرواژه یا احراز هویت مبتنی بر میزبان).

tinysshd ویژگی‌هایی از قبیل پروتکل SSH1، فشرده‌سازی، فوروارد پورت، فوروارد عامل (agent)، فوروارد X11 و موارد مشابه را ندارد.

tinysshd از تخصیص پویای حافظه استفاده نمی‌کند (عدم بروز خطاهای تخصیص حافظه و غیره).

عدم نمایش پیام‌های خطا
چاپ پیام‌های خطا (پیش‌فرض)
چاپ اطلاعات بیشتر و جزئیات
فعال‌سازی رمزنگاری مدرن (پیش‌فرض)

امضا: - ssh-ed25519

تبادل کلید: - curve25519-sha256

متقارن: - chacha20-poly1305@openssh.com

غیرفعال‌سازی رمزنگاری مدرن
فعال‌سازی رمزنگاری پساکوانتومی (پیش‌فرض)

امضا: - در حال توسعه (هنوز پیاده‌سازی نشده است)

تبادل کلید: - sntrup761x25519-sha512@openssh.com

متقارن: - chacha20-poly1305@openssh.com

غیرفعال‌سازی رمزنگاری پساکوانتومی
استفاده از syslog به‌جای خروجی خطای استاندارد (مناسب برای اجرا از طریق inetd)
عدم استفاده از syslog، استفاده از خروجی خطای استاندارد (پیش‌فرض)
افزودن دستور زیرسیستم (نمونه: sftp=/usr/libexec/openssh/sftp-server)
اجرای دستور داده‌شده به‌جای باز کردن شل (غیرفعال‌کننده درخواست‌های کانال exec/subsystem)
دایرکتوری حاوی کلیدهای TinySSH، معمولاً /etc/tinyssh/sshkeydir

tinysshd تنها از احراز هویت کلید عمومی از طریق AuthorizedKeysFile در مسیر ~/.ssh/authorized_keys پشتیبانی می‌کند. هر خط از این فایل حاوی یک کلید در قالب "keytype base64-encoded-key comment" است. tinyssh تنها از نوع کلید "ssh-ed25519" پشتیبانی می‌کند.

نمونه ~/.ssh/authorized_keys:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILV5AGhGQ1QVXjBWhTKJP3vrqE3isL4ivisBailQ14gS comment

tcpserver -HRDl0 0.0.0.0 22 /usr/sbin/tinysshd -v /etc/tinyssh/sshkeydir &
busybox tcpsvd 0 22 tinysshd -v /etc/tinyssh/sshkeydir &
/etc/inetd.conf:
ssh stream tcp nowait root /usr/sbin/tinysshd tinysshd -l -v /etc/tinyssh/sshkeydir
tinysshd.socket:
[Unit]
Description=TinySSH server socket
ConditionPathExists=!/etc/tinyssh/disable_tinysshd
[Socket]
ListenStream=22
Accept=yes
[Install]
WantedBy=sockets.target
tinysshd@.service:
[Unit]
Description=Tiny SSH server
After=network.target auditd.service
[Service]
ExecStartPre=-/usr/sbin/tinysshd-makekey -q /etc/tinyssh/sshkeydir
EnvironmentFile=-/etc/default/tinysshd
ExecStart=/usr/sbin/tinysshd ${TINYSSHDOPTS} -- /etc/tinyssh/sshkeydir
KillMode=process
SuccessExitStatus=111
StandardInput=socket
StandardError=journal
[Install]
WantedBy=multi-user.target

tinysshd-makekey(8), tinysshd-printkey(8)

https://tinyssh.org