لینوکس

آموزش دستور SSH در لینوکس؛ اتصال با پورت و کلید خصوصی

راهنمای کاربردی اتصال امن به سرور لینوکسی با SSH، پورت سفارشی و کلید خصوصی؛ همراه با اجرای دستور از راه دور و رفع خطاهای متداول.

آموزش دستور SSH در لینوکس؛ اتصال با پورت و کلید خصوصی
ارشیا درستکار
ارشیا درستکار
نویسنده و کارشناس
11 دقیقه ۳۰ مرداد ۱۴۰۵ ۱۰

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

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

SSH چیست و چگونه کار می‌کند؟

SSH مخفف Secure Shell است؛ پروتکلی برای ایجاد ارتباط رمزنگاری‌شده میان رایانه شما و یک سرور راه دور. در این ارتباط، فرمان‌ها، خروجی‌ها و اطلاعات احراز هویت در مسیر شبکه به‌صورت محافظت‌شده منتقل می‌شوند.

ساختار پایه اتصال به این صورت است:

ssh username@server_ip

برای نمونه، اتصال با کاربر root به یک سرور آزمایشی:

ssh root@192.168.1.10

اتصال SSH با پورت دلخواه

پورت پیش‌فرض SSH معمولاً 22 است. بااین‌حال مدیر سرور ممکن است برای کاهش اسکن‌های خودکار، سرویس را روی پورت دیگری قرار داده باشد. برای تعیین پورت از گزینه p- استفاده کنید:

ssh username@server_ip -p port

برای نمونه، اگر سرویس SSH روی پورت 2222 در دسترس باشد:

ssh root@192.168.1.10 -p 2222

تغییر پورت به‌تنهایی جای تنظیمات امنیتی مناسب را نمی‌گیرد؛ فایروال، احراز هویت کلیدی و به‌روزرسانی منظم همچنان ضروری‌اند.

اتصال SSH با کلید خصوصی

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

برای مشخص‌کردن مسیر کلید خصوصی از گزینه i- استفاده کنید:

ssh -i ~/.ssh/id_rsa root@192.168.1.10

اگر هم‌زمان به کلید خصوصی و پورت سفارشی نیاز دارید، دو گزینه را با هم به کار ببرید:

ssh -i ~/.ssh/id_rsa root@192.168.1.10 -p 2222

رفع خطای UNPROTECTED PRIVATE KEY FILE

اگر سطح دسترسی فایل کلید خصوصی بیش از حد باز باشد، سرویس‌گیرنده SSH برای محافظت از کلید اتصال را متوقف می‌کند و هشدار UNPROTECTED PRIVATE KEY FILE نمایش می‌دهد. در لینوکس و macOS معمولاً این دستور مشکل را برطرف می‌کند:

chmod 600 ~/.ssh/id_rsa

سطح دسترسی 600 یعنی فقط مالک فایل اجازه خواندن و نوشتن دارد. مسیر و نام فایل را با کلید واقعی خودتان جایگزین کنید و کلید خصوصی را هرگز برای دیگران ارسال نکنید.

اجرای دستور روی سرور بدون ورود کامل

برای بررسی سریع وضعیت سرور لازم نیست همیشه یک نشست تعاملی باز کنید. دستور موردنظر را پس از آدرس سرور داخل کوتیشن بنویسید تا از راه دور اجرا شود.

نمایش اطلاعات سیستم‌عامل:

ssh root@192.168.1.10 "cat /etc/os-release"

بررسی فضای دیسک:

ssh root@192.168.1.10 "df -h"

اجرای همان دستور روی پورت 2222:

ssh root@192.168.1.10 -p 2222 "df -h"

گزینه‌های کاربردی دستور SSH

گزینه‌های زیر در کار روزانه با سرورها بسیار پرکاربرد هستند:

  • p-: تعیین پورت اتصال؛ برای نمونه 2222.

  • i-: تعیین مسیر فایل کلید خصوصی.

  • v-: نمایش جزئیات بیشتر برای عیب‌یابی اتصال. در صورت نیاز می‌توانید از vv- یا vvv- استفاده کنید.

  • L-: ساخت تونل محلی و انتقال امن یک پورت.

  • N-: ایجاد اتصال بدون اجرای فرمان راه دور؛ معمولاً همراه تونل‌سازی استفاده می‌شود.

برای مشاهده جزئیات فرایند اتصال و پیدا کردن مرحله‌ای که خطا رخ می‌دهد:

ssh -v root@192.168.1.10

خطاهای رایج اتصال SSH و راه‌حل‌ها

خطای Permission denied

پیام Permission denied (publickey,password) معمولاً به نام کاربری اشتباه، کلید نامعتبر، نبودن کلید عمومی در حساب مقصد یا غیرفعال‌بودن روش احراز هویت مربوط است. نام کاربری، مسیر کلید، فایل authorized_keys و اجازه ورود کاربر را بررسی کنید.

خطای Connection refused

این خطا یعنی میزبان پاسخ داده، اما روی پورت انتخاب‌شده سرویسی اتصال را نپذیرفته است. فعال‌بودن سرویس ssh یا sshd، شماره پورت و قوانین فایروال سرور را بررسی کنید.

خطای Connection timed out

این پیام بیشتر به قطع مسیر شبکه، بسته‌بودن پورت در فایروال یا Security Group، آدرس IP اشتباه یا خاموش‌بودن سرور مربوط است. ابتدا دسترسی شبکه و سپس پورت SSH را بررسی کنید.

خطای Host key verification failed

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

نکات امنیتی مهم درباره SSH

  • کلید خصوصی، رمز عبور و عبارت عبور کلید را در اختیار دیگران قرار ندهید.

  • برای سرورهای مهم از کلید SSH همراه با عبارت عبور قوی استفاده کنید.

  • در صورت امکان ورود مستقیم کاربر root و ورود با رمز عبور را محدود کنید.

  • دسترسی SSH را در فایروال فقط به IPهای موردنیاز محدود کنید.

  • سیستم‌عامل و بسته OpenSSH را به‌روز نگه دارید و لاگ‌های ورود ناموفق را بررسی کنید.

  • پیش از اجرای فرمان‌های حساس، نام میزبان و کاربری را که به آن متصل شده‌اید دوباره کنترل کنید.

پرسش‌های متداول درباره SSH

پورت پیش‌فرض SSH چیست؟

پورت پیش‌فرض SSH برابر 22 است، اما مدیر سرور می‌تواند آن را تغییر دهد. در آن حالت باید شماره پورت را با گزینه p- مشخص کنید.

گزینه p- چه کاری انجام می‌دهد؟

این گزینه پورت TCP اتصال SSH را تعیین می‌کند؛ برای مثال p 2222- یعنی اتصال به پورت 2222.

گزینه i- در دستور SSH چیست؟

گزینه i- مسیر فایل هویت یا همان کلید خصوصی را مشخص می‌کند. نمونه رایج آن i ~/.ssh/id_rsa- است

چرا اتصال با کلید خصوصی خطای Permission می‌دهد؟

یکی از علت‌های رایج، بازبودن سطح دسترسی فایل کلید است. فرمان chmod 600 معمولاً سطح دسترسی مناسب را تنظیم می‌کند؛ بااین‌حال نام کاربری، مسیر کلید و ثبت‌شدن کلید عمومی روی سرور هم باید درست باشد.

چگونه بدون ورود تعاملی یک فرمان اجرا کنم؟

فرمان را پس از مقصد داخل کوتیشن قرار دهید؛ برای مثال ssh user@server_ip "df -h" خروجی فضای دیسک را برمی‌گرداند و سپس اتصال بسته می‌شود.

جمع‌بندی

دستور ssh یکی از پایه‌ای‌ترین ابزارهای مدیریت سرور لینوکسی است. با یادگیری اتصال ساده، گزینه‌های p- و i-، اجرای فرمان از راه دور و شیوه عیب‌یابی خطاهای متداول می‌توانید مدیریت سرور را سریع‌تر و امن‌تر انجام دهید. پیش از هر اتصال، از درست‌بودن آدرس، کاربر، پورت و مسیر کلید اطمینان پیدا کنید.

ارشیا درستکار

نویسنده مقالات تخصصی و آموزشی در وبلاگ نتزو.

مشاهده تمام مقالات این نویسنده

مقالات مرتبط و پیشنهادی