OpenSSH server روی اوبونتو همان sshd است که نشست امن از راه دور میسازد. با نصب openssh-server، تأیید سرویس ssh.service، ورود با کلید ed25519 و ویرایش محتاطانهٔ sshd_config میتوانید از صفر به یک ورود قابل اعتماد برسید؛ این متن مسیر مستند رسمی Ubuntu Server را دنبال میکند.
آموزش OpenSSH Server روی اوبونتو؛ نصب و ورود امن
پیشنیاز: دسترسی sudo روی میزبان، یک حساب کاربری عادی (نه فقط root)، و اگر سرور فقط از راه دور در دسترس است یک نشست بازِ اضافه قبل از هر restart. نقشها را جدا کنید: میزبان (server) سرویس ssh را اجرا میکند؛ کلاینت با فرمان ssh وصل میشود.
- فهرست بسته را تازه کنید: sudo apt update.
- سرور را نصب کنید: sudo apt install openssh-server. برای ابزار کلاینت روی همان یا ماشین دیگر: sudo apt install openssh-client.
- وضعیت را ببینید: sudo systemctl status ssh و در صورت نیاز sudo systemctl enable --now ssh.
- گوشدادن روی پورت ۲۲ را با ss -tlnp | grep ':22' تأیید کنید.
- روی کلاینت کلید بسازید: ssh-keygen -t ed25519 (مستند اوبونتو همین الگوریتم را توصیه میکند).
- کلید عمومی را روی سرور بگذارید: ssh-copy-id username@target_machine سپس با ssh username@target_machine بدون رمز عبورِ حساب وارد شوید.
فایل اصلی تنظیمات /etc/ssh/sshd_config است، ولی اوبونتو بالای فایل Include /etc/ssh/sshd_config.d/*.conf دارد؛ مقدار داخل snippetها معمولاً زودتر اعمال میشود. قبل از ویرایش از اصل نسخه بگیرید:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
sudo chmod a-w /etc/ssh/sshd_config.original
تست تنظیمات، بنر و عیبیابی
بعد از هر تغییر، قبل از ریاستارت: sudo sshd -t. اگر خطا نبود: sudo systemctl restart ssh.service. برای دنبالکردن زندهٔ لاگ هنگام تست ورود: sudo journalctl -fu ssh.service. اگر کلید کار نکرد، مجوز authorized_keys را با chmod go-w ~/.ssh/authorized_keys درست کنید.
نکتهٔ امنیتی کوتاه: SSH را بیکلید و بدون فایروال روی کل اینترنت باز نگذارید؛ و روی سرور فقطازراهدور، گزینهای را خاموش نکنید که تنها مسیر ورودتان باشد. اگر وسط کار قفل شدید، در نظرات (بدون گذاشتن کلید خصوصی) پیام sshd -t یا journal را بفرستید. مرجع: OpenSSH server | Ubuntu Server documentation. شما بیشتر با رمز وارد میشوید یا از اول کلید میسازید؟
تفاوت پرتکرار این است که بستهٔ openssh-client را با server یکی فرض میکنند. کلاینت فقط برای اتصال به دیگران است؛ گوشدادن روی ۲۲ با openssh-server و واحد systemd به نام ssh.service میآید. بعد از نصب، status باید active باشد؛ اگر failed دیدید، journal همان واحد را بخوانید نه اینکه فوراً purge کنید.
کلید ed25519 کوتاهتر و سبکتر از RSA بزرگ است و مستند اوبونتو همان را جلو میگذارد. passphrase روی کلید خصوصی را جدی بگیرید؛ بدون آن هر کسی که فایل کلید را بردارد وارد سرور میشود. ssh-agent در نشست رومیزی تکرار passphrase را کم میکند.
روی سرور فقطازراهدور، قبل از restart حتماً sshd -t و یک نشست موازی باز داشته باشید. اشتباه در PermitRootLogin یا پورت، بدون کنسول ابری میتواند قفل کامل بسازد. کپی sshd_config.original همان بیمهٔ برگشت سریع است.
فایروال ufw یا security group ابری را طوری باز کنید که فقط از IPهای مورد اعتماد به ۲۲ برسید، مگر دلیل قوی برای باز بودن عمومی داشته باشید. بنر پیشفرض نسخه را لو میدهد؛ DebianBanner no کمی از افشای OS کم میکند ولی جای کلید و فایروال را نمیگیرد.
اگر بعد از ssh-copy-id هنوز رمز میپرسد، مجوزهای ~/.ssh و authorized_keys و مالکیت خانهٔ کاربر را چک کنید و همزمان journalctl -fu ssh.service را نگاه کنید. چندین کلید را میتوانید در ~/.ssh/config به Hostهای مختلف وصل کنید تا هر بار -i ندهید.
ثبت کوتاه نسخهٔ ssh -V و تاریخ آخرین تغییر sshd_config در مستند سرور، عیبیابی بعدی را کوتاه میکند. مرجع Ubuntu Server جزئیات directiveها را در man sshd_config دارد.
اگر از ابر استفاده میکنید، security group را جدا از ufw داخل مهمان تنظیم کنید؛ باز بودن ۲۲ در هر دو لایه لازم است تا کلاینت برسد. برای چند ادمین، هر نفر کلید خودش را در authorized_keys داشته باشد تا ابطال دسترسی با حذف یک خط انجام شود.