
مقدمه
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 در اوبونتو 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 |
|---|---|---|
| یونیت systemd | ssh.service | ssh.service |
| فایلهای drop-in پیکربندی | Include /etc/ssh/sshd_config.d/*.conf | همان؛ مکان ترجیحی برای قوانین سفارشی |
| نسخه معمول OpenSSH | 8.9.x | 9.6.x (در 24.04)، 10.x (در 26.04) |
| PermitRootLogin پیشفرض | اغلب prohibit-password | prohibit-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 در اوبونتو
تنظیمات سرور در /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 refused | sshd در حال اجرا نیست یا پورت بلاک شده | 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 host | MaxAuthTries، تایماوت بیکاری | 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 تست کنید.




