مقدمه
یکی از مهمترین ابزارهایی که هر مدیر سیستم یا ادمین سرور باید بهخوبی بر آن مسلط باشد، SSH است.
SSH یا Secure Shell پروتکلی امن برای اتصال و ورود به سیستمهای راهدور محسوب میشود و رایجترین روش دسترسی به سرورهای لینوکسی است. این پروتکل امکان مدیریت سرور، اجرای دستورات و انتقال اطلاعات را از طریق یک کانال رمزنگاریشده فراهم میکند.
در این آموزش از دیدگاه، بهصورت مرحلهبهمرحله یاد میگیریم چگونه با استفاده از SSH به یک سرور ریموت متصل شویم و تنظیمات امنیتی آن را بهینه کنیم.
شروع سریع: اتصال به سرور با SSH در ۵ مرحله
-
باز کردن ترمینال
-
در لینوکس و macOS: برنامه Terminal
-
در ویندوز: PowerShell، Git Bash یا WSL
-
-
اجرای دستور SSH
ssh username@server_ipتأیید اثر انگشت (Fingerprint) سرور
در اولین اتصال، از شما خواسته میشود کلید سرور را تأیید کنید.
احراز هویت
-
با رمز عبور
-
یا با کلید SSH (در صورت تنظیم)
اتصال برقرار شد
برای خروج از نشست SSH:
exitساختار اصلی دستور SSH
فرم ساده دستور:
ssh remote_hostدر این حالت، نام کاربری سیستم محلی شما با نام کاربر سرور یکسان فرض میشود.
اگر نام کاربری متفاوت است:
ssh remote_username@remote_hostremote_host میتواند IP سرور یا دامنه باشد.
SSH در ویندوز، لینوکس و مک
-
Linux / macOS
دستور SSH بهصورت پیشفرض در سیستم موجود است. -
Windows
-
PowerShell با OpenSSH
-
Git Bash
-
Windows Subsystem for Linux (WSL)
-
تمام این روشها بهخوبی پشتیبانی میشوند و انتخاب آنها کاملاً سلیقهای است.
SSH چگونه کار میکند؟
SSH از دو بخش تشکیل شده است:
-
کلاینت (ssh) روی سیستم شما
-
سرور (sshd) روی سرور مقصد
در اغلب توزیعهای لینوکس، سرویس sshd بهصورت پیشفرض فعال است. اگر فعال نبود، میتوان آن را اجرا کرد.
راهاندازی SSH در اوبونتو
اگر هنوز اوبونتو را نصب نکردهاید، پیش از این مرحله میتوانید از راهنمای کامل نصب Ubuntu 24 کمک بگیرید.
sudo systemctl start sshفایل تنظیمات SSH
فایل اصلی تنظیمات SSH در اوبونتو:
/etc/ssh/sshd_configتهیه نسخه پشتیبان
sudo cp /etc/ssh/sshd_config{,.bak}ویرایش فایل
sudo nano /etc/ssh/sshd_configمهمترین تنظیمات sshd_config
پورت اتصال
Port 22پورت پیشفرض 22 است. تغییر آن باعث کاهش حملات خودکار میشود.
دسترسی کاربر root
PermitRootLogin noبرای امنیت بیشتر، ورود مستقیم root را غیرفعال کنید.
زمان انتظار ورود
LoginGraceTime 120مدت زمانی که کاربر برای ورود فرصت دارد.
لاگها
LogLevel INFOدر صورت بروز مشکل میتوانید سطح لاگ را افزایش دهید.
X11 Forwarding
X11Forwarding yesبرای اجرای برنامههای گرافیکی سرور روی سیستم محلی استفاده میشود.
اعمال تغییرات
sudo systemctl reload sshتوصیه دیدگاه: هنگام تغییر تنظیمات SSH، حتماً یک نشست SSH دیگر باز نگه دارید تا در صورت خطا از سرور قفل نشوید.
مدیریت چند سرور با ~/.ssh/config
برای سادهسازی اتصال به چند سرور:
nano ~/.ssh/configنمونه:
Host dev-server
HostName 192.168.1.10
User devuser
Port 2222
IdentityFile ~/.ssh/dev_keyاتصال:
ssh dev-serverورود با کلید SSH (امن و حرفهای)
مکانیزم احراز هویت با کلید
-
کلید خصوصی: فقط روی سیستم شما
-
کلید عمومی: روی سرور
سرور با کلید عمومی شما را شناسایی میکند، بدون ارسال رمز عبور.
ساخت کلید SSH
ssh-keygen -t rsaکلیدها در مسیر زیر ساخته میشوند:
~/.ssh/id_rsa
~/.ssh/id_rsa.pubسطح دسترسی صحیح فایلها
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pubانتقال کلید عمومی به سرور
ssh-copy-id remote_hostپس از آن، ورود بدون رمز عبور انجام میشود.
اجرای دستور روی سرور بدون ورود
ssh remote_host commandاین روش بهویژه برای اجرای اسکریپتهای Bash در فرآیندهای خودکار بسیار کاربردی است.
خطاهای رایج SSH و راهحلها
| خطا | علت احتمالی | راهحل |
|---|---|---|
| Connection refused | sshd فعال نیست |
systemctl start sshssh-keygen -R ipغیرفعالسازی ورود با رمز عبور (توصیه امنیتی)
PasswordAuthentication no
PubkeyAuthentication yesسپس:
sudo systemctl reload sshهشدار: قبل از این کار، حتماً کلید SSH را تست کرده باشید.
چکلیست امنیت SSH از دیدگاه
-
غیرفعال کردن PasswordAuthentication
-
تغییر پورت پیشفرض
-
استفاده از SSH Key
-
PermitRootLogin no
-
محدودسازی دسترسی با فایروال
-
بروزرسانی منظم سیستم
پرسشهای متداول
SSH چیست و چه کاربردی دارد؟
SSH برای مدیریت امن سرورها، اجرای دستورات، انتقال فایل و تونلسازی استفاده میشود.
آیا SSH امن است؟
بله، مخصوصاً با کلید SSH، پورت غیرپیشفرض و تنظیمات صحیح.
آیا SSH در ویندوز هم قابل استفاده است؟
کاملاً. PowerShell، Git Bash و WSL همگی پشتیبانی میشوند.
جمعبندی
یادگیری و تسلط بر SSH یکی از ضروریترین مهارتها در مدیریت سرور و زیرساخت است. این ابزار سبک، امن و انعطافپذیر سالهاست ستون اصلی مدیریت سرورهای لینوکسی محسوب میشود و همچنان انتخاب اول حرفهایهاست.
آموزش از: دیدگاه
برای انتقال امن فایلها بین سیستم خود و سرور نیز میتوانید از آموزش استفاده از SFTP استفاده کنید.
