سرورشبکه

آموزش استفاده از SSH برای اتصال به سرور ریموت (راهنمای گام‌به‌گام)

مقدمه

SSH (شل امن یا Secure Shell) روش استاندارد برای ورود به سرورهای لینوکسی ریموت از طریق یک اتصال رمزنگاری‌شده است. از سیستم اوبونتوی خودتان یا هر کلاینت دیگری، دستور ssh username@server_ip را اجرا کنید، در اولین اتصال کلید هاست (Host Key) را تأیید کنید و سپس با رمز عبور یا —ترجیحاً— با یک جفت کلید SSH احراز هویت کنید.

اپلیکیشن‌های فرانت‌اند خود را از گیت‌هاب روی زیرساخت ابری پارمین کلود دیپلوی کنید و مقیاس‌پذیری و مدیریت زیرساخت را به پارمین کلود بسپارید.

این راهنما نحوه استفاده از کلاینت، فعال‌سازی OpenSSH در اوبونتو 24.04 LTS و 26.04 LTS، ورود مبتنی بر کلید، پیکربندی sshd و خطاهای رایج را پوشش می‌دهد. برای دیدن تصویر کامل پروتکل، راهنمای «اصول SSH: کار با سرورها، کلاینت‌ها و کلیدهای SSH» را در پارمین کلود بخوانید.

نکته نسخه: دستورات زیر روی اوبونتو 22.04 LTS، 24.04 LTS (Noble Numbat) و 26.04 LTS (Resolute Raccoon) اعتبارسنجی شده‌اند. در نسخه‌های LTS فعلی، یونیت systemd با نام ssh.service است (با systemctl … ssh مدیریتش کنید). در نسخه‌های 24.04 و 26.04، OpenSSH قبل از مقادیر فایل اصلی sshd_config، فایل‌های drop-in موجود در /etc/ssh/sshd_config.d/ را می‌خواند. ایمیج‌های ابری (از جمله سرورهای پارمین کلود) اغلب با openssh-server از پیش نصب‌شده و کلید عمومی SSH شما که هنگام ساخت سرور تزریق شده، عرضه می‌شوند.

نکات کلیدی

  • از هر کلاینتی با ssh user@host وصل شوید؛ برای پورت غیرپیش‌فرض از -p و برای انتخاب کلید خصوصی خاص از -i استفاده کنید.
  • در اوبونتو، سرور را با sudo apt install openssh-server نصب کنید و سپس sudo systemctl enable --now ssh را اجرا کنید.
  • در نسخه‌های 24.04 و 26.04، تنظیمات سفارشی sshd را در /etc/ssh/sshd_config.d/ قرار دهید تا با به‌روزرسانی پکیج‌ها بازنویسی نشوند.
  • قبل از اجرای sudo systemctl reload ssh، دستور sudo sshd -t را اجرا کنید تا خطاهای سینتکس پیکربندی شناسایی شوند و از قفل شدن خودتان جلوگیری کنید.
  • برای کلیدهای جدید، ssh-keygen -t ed25519 را به RSA ترجیح دهید؛ کلید عمومی را با ssh-copy-id کپی کنید.
  • وقتی فایروال فعال است، با sudo ufw allow OpenSSH دسترسی SSH را در UFW باز کنید.
  • بعد از عملیاتی شدن کلیدها، برای سرورهای پروداکشن مقدار PasswordAuthentication no و PermitRootLogin no را تنظیم کنید.
  • اگر پیکربندی اشتباه SSH جلوی ورودتان را گرفت، از کنسول وب سرور پارمین کلود برای دسترسی اضطراری استفاده کنید.

شروع سریع: اتصال به سرور ریموت با SSH در ۵ مرحله

۱. ترمینال را باز کنید.

  • در لینوکس/مک: از Terminal استفاده کنید.
  • در ویندوز: از PowerShell، WSL یا Git Bash استفاده کنید.

۲. دستور SSH را اجرا کنید:

ssh username@your_server_ip

۳. اثر انگشت هاست (Host Fingerprint) را هنگام درخواست در اولین اتصال بررسی و تأیید کنید.

۴. با رمز عبور یا کلید SSH احراز هویت کنید.

۵. با exit قطع اتصال کنید.

ورود موفق با SSH با استفاده از Termius، نمایش صفحه خوش‌آمدگویی اوبونتو و پرامپت شل

فعال‌سازی SSH در اوبونتو 24.04 و 26.04 LTS

ایمیج‌های ابری اوبونتو سرور معمولاً شامل OpenSSH هستند. اما نسخه دسکتاپ اوبونتو اغلب شامل آن نیست—خودتان باید نصبش کنید. مراحل در نسخه‌های 22.04، 24.04 و 26.04 یکسان است؛ تفاوت‌ها هر جا که اهمیت داشته باشند، اشاره شده‌اند.

نصب و راه‌اندازی سرور OpenSSH

روی ماشینی که می‌خواهید به‌صورت ریموت به آن دسترسی داشته باشید:

sudo apt update
sudo apt install openssh-server
sudo systemctl enable --now ssh

وضعیت سرویس و فعال بودن شنود را تأیید کنید:

sudo systemctl status ssh
ss -tlnp | grep ':22'

وضعیت مورد انتظار: active (running) و پورت 22 در حالت LISTEN.

باز کردن فایروال (UFW)

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

sudo ufw allow OpenSSH
sudo ufw status

پروفایل اپلیکیشن OpenSSH به پورت 22 نگاشت می‌شود. برای پورت سفارشی، آن پورت را به‌صورت صریح باز کنید (راهنمای راه‌اندازی فایروال با UFW روی اوبونتو در پارمین کلود را ببینید).

تفاوت‌های نسخه‌های اوبونتو در یک نگاه

موضوعاوبونتو 22.04 LTSاوبونتو 24.04 / 26.04 LTS
یونیت systemdssh.servicessh.service
فایل‌های drop-in پیکربندیInclude /etc/ssh/sshd_config.d/*.confهمان؛ مکان ترجیحی برای قوانین سفارشی
نسخه معمول OpenSSH8.9.x9.6.x (در 24.04)، 10.x (در 26.04)
PermitRootLogin پیش‌فرضاغلب prohibit-passwordprohibit-password (ورود root فقط با کلید)
دسکتاپ: سرور SSH پیش‌نصب‌شدهخیرخیر
سرور پارمین کلود: SSH در اولین بوتمعمولاً بله، همراه با کلید SSH شمامعمولاً بله، همراه با کلید SSH شما

مرجع رسمی: مستندات سرور اوبونتو (OpenSSH server).

برای هاردنینگ (امن‌سازی) اولیه سرور مجازی، بعد از کار کردن SSH راهنمای راه‌اندازی اولیه سرور با اوبونتو در پارمین کلود را دنبال کنید.

سینتکس اصلی

برای اتصال به یک سیستم ریموت، از دستور ssh استفاده کنید.

در ویندوز، OpenSSH را نصب کنید (به‌صورت داخلی در ویندوز 10/11 فعلی موجود است) یا از WSL یا Git for Windows استفاده کنید که محیط bash همراه با ssh ارائه می‌دهند. برای راه‌اندازی در PowerShell، مستندات OpenSSH مایکروسافت را ببینید.

در مک و لینوکس، ssh به‌صورت پیش‌فرض در ترمینال در دسترس است.

شکل کلی دستور:

ssh remote_host

به جای remote_host یک آدرس IP یا نام دامنه قرار دهید. اگر نام کاربری شما در سیستم ریموت با نام کاربری محلی‌تان متفاوت است، آن را به‌صورت صریح مشخص کنید:

ssh remote_username@remote_host

بعد از اتصال، ممکن است برای رمز عبور درخواست شوید؛ مگر اینکه احراز هویت مبتنی بر کلید پیکربندی شده باشد. نشست را با این دستور پایان دهید:

exit

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

SSH یک کلاینت (ssh) را به یک سرور (sshd) متصل می‌کند.

در بیشتر سیستم‌های اوبونتو، sshd بعد از نصب openssh-server به‌طور خودکار راه می‌افتد. اگر سرویس متوقف شده باشد، آن را راه‌اندازی کنید:

sudo systemctl start ssh

اگر نتوانستید از طریق شبکه به هاست دسترسی پیدا کنید، از کنسول مستقل (خارج از باند) ارائه‌دهنده‌تان استفاده کنید. در پارمین کلود، تب دسترسی سرور را باز کنید و کنسول وب را اجرا کنید—این کنسول زمانی مفید است که کلیدهای SSH یا قوانین فایروال جلوی ورود عادی را گرفته باشند.

دسترسی به سرور از طریق کنسول مبتنی بر مرورگر پارمین کلود؛ گزینه‌ای ایده‌آل برای دسترسی اضطراری بدون نیاز به کلاینت SSH

برای جزئیات رمزنگاری و فرایند هندشیک، راهنمای «درک فرایند رمزنگاری و اتصال SSH» را در پارمین کلود مطالعه کنید.

نحوه پیکربندی SSH در اوبونتو

تنظیمات سرور در /etc/ssh/sshd_config قرار دارند. در اوبونتو 24.04 و 26.04، خط اول این فایل معمولاً به این شکل است:

Include /etc/ssh/sshd_config.d/*.conf

OpenSSH برای بیشتر دایرکتیوها اولین مقداری را که پیدا کند اعمال می‌کند. بنابراین تغییرات سفارشی را به‌جای ویرایش فایل اصلی، در یک فایل drop-in مانند /etc/ssh/sshd_config.d/99-custom.conf ذخیره کنید.

قبل از ویرایش، بکاپ بگیرید:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%F)

دایرکتیوهای رایج برای بررسی:

Port 22 — تا وقتی دلیل مستندی ندارید، روی 22 بگذارید. پورت‌های غیراستاندارد نویز اسکن‌های خودکار را کم می‌کنند، اما جایگزین کلیدهای SSH و قوانین فایروال نیستند.

PermitRootLogin prohibit-password — در نسخه‌های LTS فعلی اوبونتو، ورود مستقیم root با رمز عبور معمولاً غیرفعال است؛ اما root همچنان می‌تواند با کلید وارد شود. برای محیط پروداکشن، بعد از ساخت کاربر sudo با دسترسی کلیدی، مقدار PermitRootLogin no را تنظیم کنید.

PubkeyAuthentication yes

PasswordAuthentication yes

KbdInteractiveAuthentication no — راهنماهای قدیمی به ChallengeResponseAuthentication اشاره می‌کنند؛ در OpenSSH نسخه 8.4 به بعد، به‌جای آن از KbdInteractiveAuthentication استفاده کنید.

LogLevel INFO — هنگام عیب‌یابی خطاهای احراز هویت، به‌طور موقت به DEBUG افزایش دهید (و بعداً به حالت قبل برگردانید).

بعد از اعمال تغییرات، تست کنید و سرویس را ریلود کنید:

sudo sshd -t
sudo systemctl reload ssh

هنگام تست، یک نشست ترمینال دوم باز نگه دارید تا اگر چیزی خراب شد، بتوانید تنظیمات را بازگردانی کنید.

استفاده از ‎~/.ssh/config برای اتصال‌های متعدد

روی ماشین محلی خود، فایل ~/.ssh/config را بسازید یا ویرایش کنید:

Host dev-server
    HostName 192.168.1.10
    User devuser
    Port 2222
    IdentityFile ~/.ssh/dev_key

حالا با این دستور ساده وصل شوید:

ssh dev-server

این روش وقتی مفید است که چند کلید، کاربر یا پورت مختلف را مدیریت می‌کنید. برای آموزش کامل، راهنمای «پیکربندی احراز هویت مبتنی بر کلید SSH روی سرور لینوکس» را در پارمین کلود ببینید.

نحوه ورود با کلیدهای SSH

ورود با رمز عبور برای تست مناسب است؛ اما احراز هویت مبتنی بر کلید سریع‌تر است و در برابر حملات جستجوی فراگیر (Brute-Force) مقاومت بیشتری دارد.

نحوه کار احراز هویت مبتنی بر کلید

شما یک کلید خصوصی (که روی کامپیوتر خودتان می‌ماند) و یک کلید عمومی (که روی سرور کپی می‌شود) تولید می‌کنید. سرور از کلاینت می‌خواهد ثابت کند که کلید خصوصیِ منطبق با کلید عمومی موجود در ~/.ssh/authorized_keys را در اختیار دارد.

ساخت کلیدهای SSH در اوبونتو 24.04 / 26.04

کلیدها را روی ماشینی که از آن وصل می‌شوید (لپ‌تاپ یا ورک‌استیشن خودتان) بسازید:

ssh-keygen -t ed25519

برای پذیرش مسیر پیش‌فرض (~/.ssh/id_ed25519) کلید Enter را بزنید. به‌صورت اختیاری می‌توانید برای کلید خصوصی یک passphrase (عبارت عبور) تعیین کنید.

برای سیستم‌های قدیمی‌تر که Ed25519 را پشتیبانی نمی‌کنند، از RSA استفاده کنید:

ssh-keygen -t rsa -b 4096

مجوزها (Permissions) را بررسی کنید:

ls -l ~/.ssh/

کلیدهای خصوصی باید مجوز 600 داشته باشند؛ فایل authorized_keys روی سرور باید 600 و دایرکتوری .ssh باید 700 باشد.

کپی کلید عمومی روی سرور

اگر ورود با رمز عبور هنوز کار می‌کند:

ssh-copy-id username@remote_host

در پارمین کلود هم می‌توانید کلیدها را هنگام ساخت سرور یا از طریق پنل مدیریت اضافه کنید—راهنمای «نحوه افزودن کلیدهای SSH به سرورها» را در پارمین کلود ببینید.

گزینه‌های سمت کلاینت

فلگ‌های مفید هنگام اتصال:

اتصال به پورت غیرپیش‌فرض (باید با مقدار Port در sshd_config مطابقت داشته باشد):

ssh -p port_number remote_username@remote_host

تغییر پورت SSH فقط نوعی گمنامی ایجاد می‌کند، نه امنیت واقعی. برای حفاظت معنادار، احراز هویت مبتنی بر کلید، PermitRootLogin no و قوانین فایروال را با هم به کار ببرید.

اجرای یک دستور ریموت (بدون ورود به شل):

ssh remote_host "command_to_run"

فورواردینگ X11 (اگر در sshd_config در هر دو طرف فعال باشد):

ssh -X remote_host

دیباگ با خروجی مفصل (Verbose):

ssh -vvv remote_username@remote_host

خطاهای رایج SSH و عیب‌یابی

خطاعلت احتمالیراه‌حل پیشنهادی
Connection refusedsshd در حال اجرا نیست یا پورت بلاک شدهsudo systemctl start ssh؛ sudo ufw allow OpenSSH
Permission denied (publickey)کلید وجود ندارد یا مجوزها اشتباه استchmod 700 ~/.ssh؛ chmod 600 ~/.ssh/authorized_keys
Connection timed outفایروال، IP اشتباه یا مشکل شبکهping / traceroute؛ فایروال ابری و UFW را بررسی کنید
Host key verification failedسرور بازسازی شده یا IP استفاده مجدد شدهssh-keygen -R hostname_or_ip
Too many authentication failuresایجنت SSH کلیدهای زیادی پیشنهاد می‌دهدssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 user@host

مشکلات پیشرفته

خطاعلت احتمالیراه‌حل پیشرفته
Connection closed by remote hostMaxAuthTries، تایم‌اوت بی‌کاریsshd_config را بررسی کنید؛ sudo journalctl -u ssh
Bad owner or permissions on .sshمجوزهای شلختهchmod 700 ~/.ssh؛ کلیدهای خصوصی را chmod 600 کنید
Authentication refusedهم رمز عبور و هم کلیدها غیرفعال‌اندPubkeyAuthentication yes را فعال کنید یا موقتاً احراز هویت رمز عبور را برگردانید
Cannot resolve hostnameغلط تایپی در DNSاز IP استفاده کنید یا /etc/hosts را اصلاح کنید

روی سرور، لاگ‌های زنده را مشاهده کنید:

sudo journalctl -fu ssh

غیرفعال کردن احراز هویت با رمز عبور

بعد از عملیاتی شدن ورود با کلید، احراز هویت صرفاً مبتنی بر رمز عبور را غیرفعال کنید.

هشدار: قبل از غیرفعال کردن رمز عبور، مطمئن شوید کلید عمومی‌تان در ~/.ssh/authorized_keys قرار دارد. کنسول وب را تا زمان تأیید موفق ورود با کلید، در دسترس نگه دارید.

روی اوبونتو 24.04 / 26.04 یک فایل drop-in بسازید یا ویرایش کنید:

sudo nano /etc/ssh/sshd_config.d/99-disable-password.conf

این خطوط را اضافه کنید:

PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes

اعتبارسنجی و ریلود:

sudo sshd -t
sudo systemctl reload ssh

قبل از بستن نشست فعلی‌تان، حتماً از یک ترمینال جدید تست بگیرید.

بهترین روش‌های امنیتی SSH

  • از کلیدهای Ed25519 یا RSA با طول 4096 بیت استفاده کنید؛ از ورود فقط با رمز عبور روی سرورهای عمومی پرهیز کنید.
  • بعد از ساخت یک کاربر sudo، مقدار PermitRootLogin no را تنظیم کنید.
  • پکیج openssh-server را به‌روز نگه دارید (sudo apt upgrade openssh-server).
  • در صورت امکان، دسترسی SSH را با UFW یا فایروال ابری به IP‌های شناخته‌شده محدود کنید.
  • برای محافظت بیشتر در برابر حملات brute-force، استفاده از fail2ban را در نظر بگیرید.
  • برای انتقال فایل از SFTP/SCP روی SSH استفاده کنید—راهنمای «نحوه استفاده از SFTP» را در پارمین کلود ببینید.

نحوه استفاده از SSH در ویندوز، لینوکس و مک

  • ویندوز: PowerShell، WSL یا Git Bash—همه از ssh user@server_ip و ssh-keygen پشتیبانی می‌کنند.
  • مک / لینوکس: از ترمینال داخلی استفاده کنید؛ همان دستورات کار می‌کنند.

تولید کلید:

ssh-keygen -t ed25519

سوالات متداول

۱. چطور از SSH در ترمینال اوبونتو استفاده کنم؟

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

ssh username@server_ip

به جای username حساب کاربری‌تان روی هاست ریموت و به جای server_ip آدرس IP عمومی یا نام هاست را قرار دهید. در اولین اتصال، برای اعتماد به کلید هاست yes را تایپ کنید، سپس رمز عبور را وارد کنید یا در صورت پیکربندی، از کلید SSH استفاده کنید.

۲. چطور SSH را روی اوبونتو لینوکس راه‌اندازی کنم؟

روی سرور، OpenSSH را نصب و فعال کنید:

sudo apt update
sudo apt install openssh-server
sudo systemctl enable --now ssh

اگر UFW فعال است، دستور sudo ufw allow OpenSSH را اجرا کنید. روی کلاینت خود، با ssh-keygen -t ed25519 یک کلید بسازید و با ssh-copy-id user@server_ip کلید عمومی را روی سرور نصب کنید.

۳. چطور OpenSSH را در اوبونتو فعال کنم؟

پکیج سمت سرور openssh-server است؛ ابزارهای کلاینت در پکیج openssh-client قرار دارند (که اغلب از پیش نصب شده است). سرور را با apt نصب کنید، سرویس ssh.service را راه بیندازید و با sudo systemctl status ssh وضعیت را تأیید کنید. در اوبونتو دسکتاپ 24.04 یا 26.04، این مرحله قبل از کار کردن ورود ریموت ضروری است.

۴. چطور بفهمم SSH در اوبونتو فعال است؟

sudo systemctl status ssh

به دنبال active (running) بگردید. همچنین پورت را تأیید کنید:

ss -tlnp | grep ':22'

از یک ماشین دیگر هم می‌توانید با ssh -v user@host یا nc -zv host 22 تست بگیرید.

۵. چرا SSH در اوبونتو کار نمی‌کند؟

علل رایج:

  • openssh-server نصب نشده (به‌ویژه در نسخه دسکتاپ)—با apt نصبش کنید.
  • sshd اجرا نمی‌شود—دستور sudo systemctl start ssh را اجرا کنید.
  • فایروال پورت 22 را بلاک کرده—دستور sudo ufw allow OpenSSH را اجرا کنید یا پورت را در فایروال ابری باز کنید.
  • IP، نام کاربری یا کلید اشتباه—برای جزئیات از ssh -vvv استفاده کنید.
  • فایل sshd_config خراب—دستور sudo sshd -t را اجرا کنید و خطاها را قبل از ریلود رفع کنید.

اگر SSH از کار افتاده ولی ماشین هنوز روشن است، از کنسول ارائه‌دهنده (تب کنسول در پارمین کلود) استفاده کنید.

نتیجه‌گیری

SSH همچنان روش پیش‌فرض مدیریت ریموت سرورهای لینوکسی است؛ چون رمزنگاری‌شده و سبک است و در همه محیط‌های ابری و شبکه‌های محلی کار می‌کند. در اوبونتو 24.04 و 26.04، پکیج openssh-server را نصب کنید، برای تنظیمات سفارشی از دایرکتوری sshd_config.d استفاده کنید، کلیدهای Ed25519 را ترجیح دهید و قبل از ریلود سرویس، پیکربندی را با sshd -t تست کنید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا