اطلاعات تماس

تهران ، آیت الله کاشانی ، پلاک 160 واحد 6

92001474 - 021

[email protected]

ناحیه کاربری
امنیت سطح Enterprise آموزش گام‌به‌گام ۲۰۲۶ Linux + Windows + Mac

اتصال به سرور با SSH Key
راهنمای جامع و گام‌به‌گام ۲۰۲۶

آموزش کامل اتصال به سرور با کلید SSH — از تولید کلید تا پیکربندی امن سرور. امن‌ترین روش احراز هویت برای مدیران سرور، توسعه‌دهندگان و DevOps.

زمان مطالعه: ۱۵ دقیقه Linux · Windows · macOS همه سطوح
SSH چیست؟

پروتکل SSH و کلیدهای امنیتی — همه‌چیز که باید بدانید

قبل از شروع آموزش، درک درستی از SSH و مزایای استفاده از کلید به جای رمز عبور داشته باشیم.

کلید SSH چیست

SSH (Secure Shell) چیست؟

SSH یک پروتکل شبکه‌ای رمزنگاری‌شده است که برای دسترسی امن به سیستم‌های از راه دور طراحی شده. برخلاف Telnet که اطلاعات را به‌صورت متن ساده ارسال می‌کند، SSH تمام داده‌ها را رمزنگاری می‌کند و از حملات Man-in-the-Middle جلوگیری می‌نماید.

SSH از پورت ۲۲ به صورت پیش‌فرض استفاده می‌کند و با OpenSSH (نسخه ۹.x در ۲۰۲۶) قابل استفاده است.
🔓
کلید عمومی (Public Key) روی سرور نصب می‌شود ~/.ssh/authorized_keys
تطابق رمزنگاری
🔐
کلید خصوصی (Private Key) روی سیستم شما می‌ماند ~/.ssh/id_rsa

چرا کلید SSH بهتر از رمز عبور است؟

  • غیرقابل حدس زدن (Brute Force)
  • بدون نیاز به تایپ رمز هر بار
  • رمزنگاری ۴۰۹۶ بیتی (RSA) یا Ed25519
  • مناسب برای اسکریپت‌های اتوماتیک
RSA-4096قوی‌ترین الگوریتم کلاسیک
Ed25519سریع‌تر و مدرن‌تر در ۲۰۲۶
ECDSAبرای سیستم‌های قدیمی‌تر
OpenSSH 9.xآخرین نسخه ۲۰۲۶
گام اول

ساخت کلید SSH — تمام روش‌ها در ۲۰۲۶

قبل از هر چیز باید یک جفت کلید SSH (عمومی + خصوصی) تولید کنید.

۱

روش توصیه‌شده ۲۰۲۶ — Ed25519 (مدرن‌ترین)

سریع‌تر، امن‌تر و سازگار با OpenSSH ۶.۵+

Terminal — Ed25519 Key Generation
# روش توصیه‌شده ۲۰۲۶ — Ed25519
ssh-keygen -t ed25519 -C "[email protected]"

# خروجی:
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519): [Enter]
Enter passphrase (empty for no passphrase): [رمز امنیتی دلخواه]
Enter same passphrase again: [تکرار رمز]
Your identification has been saved in /home/user/.ssh/id_ed25519
Your public key has been saved in /home/user/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [email protected]
Ed25519 در سال ۲۰۲۶ انتخاب اول است. کلید کوچک‌تر اما امنیت بیشتری نسبت به RSA-۲۰۴۸ دارد.
۲

روش کلاسیک — RSA-۴۰۹۶ (سازگاری بالا)

برای سرورهای قدیمی‌تر یا سازمان‌هایی که RSA الزامی است

Terminal — RSA-4096 Key Generation
# روش کلاسیک — RSA با ۴۰۹۶ بیت
ssh-keygen -t rsa -b 4096 -C "[email protected]"

# پارامترها:
#  -t rsa    → نوع الگوریتم: RSA
#  -b 4096   → طول کلید: ۴۰۹۶ بیت (توصیه‌شده)
#  -C        → کامنت برای شناسایی کلید

# مشاهده کلید عمومی پس از ساخت:
cat ~/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC... [email protected]

# بررسی فایل‌های ساخته‌شده:
ls -la ~/.ssh/
-rw-------  1 user user 3389 id_rsa       ← کلید خصوصی (مخفی نگه دارید!)
-rw-r--r--  1 user user  743 id_rsa.pub   ← کلید عمومی (برای سرور)
کلید خصوصی (id_rsa) را هرگز با کسی به اشتراک نگذارید! این فایل معادل رمز عبور شماست.
گام دوم — لینوکس و مک

اتصال به سرور با SSH Key در لینوکس

راهنمای کامل برای Ubuntu، Debian، CentOS، AlmaLinux و تمام توزیع‌های لینوکس.

۱

انتقال کلید عمومی به سرور — روش اول (ssh-copy-id)

این ساده‌ترین و سریع‌ترین روش است:

Linux Terminal
# انتقال کلید با ssh-copy-id (توصیه‌شده)
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@server_ip

# مثال واقعی:
ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]

Number of key(s) added: 1

Now try logging into the machine with:
   ssh '[email protected]'
and check to make sure that only the key(s) you wanted were added.

# برای RSA:
ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip
۲

انتقال دستی کلید عمومی — روش دوم

اگر ssh-copy-id در دسترس نیست یا نیاز به کنترل بیشتر دارید:

انتقال دستی کلید
# روش one-liner — کپی و اجرا کنید
cat ~/.ssh/id_ed25519.pub | ssh username@server_ip \
  'mkdir -p ~/.ssh && \
   chmod 700 ~/.ssh && \
   cat >> ~/.ssh/authorized_keys && \
   chmod 600 ~/.ssh/authorized_keys'

# یا به صورت مرحله‌ای:
# مرحله ۱: کپی محتوای کلید عمومی
cat ~/.ssh/id_ed25519.pub

# مرحله ۲: اتصال به سرور و ایجاد فایل
ssh username@server_ip
mkdir -p ~/.ssh && chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
# کلید عمومی را paste کنید و Ctrl+X سپس Y
chmod 600 ~/.ssh/authorized_keys
دسترسی‌های chmod 700 برای دایرکتوری .ssh و chmod 600 برای authorized_keys الزامی است!
۳

اتصال به سرور با کلید SSH

اتصال با SSH Key
# اتصال با Ed25519
ssh -i ~/.ssh/id_ed25519 username@server_ip

# اتصال با RSA
ssh -i ~/.ssh/id_rsa username@server_ip

# اتصال با پورت غیرپیش‌فرض
ssh -i ~/.ssh/id_ed25519 -p 2222 username@server_ip

# اگر کلید در مسیر پیش‌فرض است (ساده‌تر):
ssh username@server_ip

# خروجی موفق:
Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 6.8.0 x86_64)
Last login: Mon Jan 15 10:30:00 2026 from 1.2.3.4
root@france-server:~$
۴

پیکربندی SSH Config — اتصال سریع‌تر

با ایجاد فایل config در ~/.ssh/config، اتصال را ساده کنید:

~/.ssh/config
# ایجاد یا ویرایش فایل config
nano ~/.ssh/config

# محتوای فایل:
Host france-vps
    HostName 185.220.100.10
    User root
    Port 22
    IdentityFile ~/.ssh/id_ed25519
    ServerAliveInterval 60
    ServerAliveCountMax 3

Host my-server-2
    HostName 192.168.1.100
    User ubuntu
    Port 2222
    IdentityFile ~/.ssh/id_rsa

# ذخیره و تنظیم دسترسی
chmod 600 ~/.ssh/config

# حالا اتصال فقط با نام:
ssh france-vps
ssh my-server-2
ویندوز ۱۰/۱۱

اتصال SSH Key در ویندوز — PowerShell و PuTTY

دو روش اصلی برای استفاده از SSH Key در ویندوز.

PowerShell / OpenSSH (توصیه‌شده)

از ویندوز ۱۰ نسخه ۱۸۰۹ به بعد، OpenSSH به‌صورت پیش‌فرض موجود است.

PowerShell (Admin)
# بررسی نصب OpenSSH
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

# نصب اگر موجود نیست
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# ساخت کلید SSH
ssh-keygen -t ed25519 -C "[email protected]"

# کلیدها در این مسیر ذخیره می‌شوند:
C:\Users\YourName\.ssh\id_ed25519
C:\Users\YourName\.ssh\id_ed25519.pub

# انتقال کلید به سرور
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

# اتصال
ssh -i $env:USERPROFILE\.ssh\id_ed25519 username@server_ip
PuTTY + PuTTYgen

برای کاربرانی که رابط گرافیکی را ترجیح می‌دهند.

  1. دانلود PuTTY از putty.org
  2. اجرای PuTTYgen
  3. انتخاب EdDSA یا RSA-۴۰۹۶
  4. کلیک Generate و حرکت موس
  5. ذخیره Private Key (.ppk)
  6. کپی Public Key و انتقال به سرور
تبدیل .ppk به OpenSSH
# تبدیل کلید PuTTY به فرمت OpenSSH
puttygen mykey.ppk -O private-openssh -o id_rsa
puttygen mykey.ppk -O public-openssh -o id_rsa.pub
macOS

SSH Key در macOS — با Keychain یکپارچه

🍎
macOS Terminal
# ساخت کلید (مثل لینوکس)
ssh-keygen -t ed25519 -C "[email protected]"

# اضافه کردن به Keychain (مزیت مک)
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

# پیکربندی ~/.ssh/config برای Keychain خودکار
nano ~/.ssh/config
Host *
    AddKeysToAgent yes
    UseKeychain yes
    IdentityFile ~/.ssh/id_ed25519

# انتقال کلید به سرور
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@server_ip

# اتصال (بدون تایپ passphrase هر بار)
ssh root@server_ip
امنیت پیشرفته

پیکربندی امن SSH Server — ضروری برای همه سرورها

پس از اتصال موفق، این تنظیمات را حتماً اعمال کنید.

پیکربندی امن SSH
🔒

پیکربندی /etc/ssh/sshd_config — تنظیمات امنیتی کامل

/etc/ssh/sshd_config — پیکربندی امنیتی ۲۰۲۶
# باز کردن فایل تنظیمات SSH
sudo nano /etc/ssh/sshd_config

═══════════════════════════════════════
 تنظیمات امنیتی ضروری — کپی کنید
═══════════════════════════════════════

# ۱. غیرفعال کردن ورود با رمز عبور
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

# ۲. فعال‌سازی احراز هویت با کلید
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

# ۳. غیرفعال کردن ورود root (توصیه‌شده)
PermitRootLogin prohibit-password
# یا برای منع کامل:
PermitRootLogin no

# ۴. محدود کردن کاربران مجاز
AllowUsers your_username deploy admin

# ۵. تغییر پورت (اختیاری — کاهش bot attacks)
Port 2222

# ۶. تنظیمات اضافی امنیتی
MaxAuthTries 3
LoginGraceTime 30
ClientAliveInterval 300
ClientAliveCountMax 2
X11Forwarding no
AllowAgentForwarding yes
Protocol 2

# اعمال تغییرات
sudo systemctl restart sshd

# یا در Ubuntu 24.04:
sudo systemctl restart ssh

# تست قبل از بستن session!
sudo sshd -t  ← بررسی syntax
مهم: قبل از بستن session فعلی، از یک terminal دیگر تست اتصال بگیرید تا از قطع نشدن دسترسی مطمئن شوید!
🛡️

fail2ban — محافظت در برابر حملات Brute Force

نصب و پیکربندی fail2ban
# نصب fail2ban (Ubuntu/Debian)
sudo apt install fail2ban -y

# نصب (CentOS/AlmaLinux)
sudo dnf install fail2ban -y

# پیکربندی برای SSH
sudo nano /etc/fail2ban/jail.local

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600

# فعال‌سازی
sudo systemctl enable fail2ban && sudo systemctl start fail2ban

# بررسی وضعیت
sudo fail2ban-client status sshd
رفع مشکلات

عیب‌یابی مشکلات رایج SSH Key

عیب‌یابی SSH
🔧

دستورات عیب‌یابی SSH

Troubleshooting Commands
═══════════════════════════════════════
 مشکل: Permission denied (publickey)
═══════════════════════════════════════

# اجرا با verbose mode برای debug
ssh -vvv -i ~/.ssh/id_ed25519 username@server_ip

# بررسی permissions (باید دقیقاً این باشد)
stat ~/.ssh/
درست: drwx------  (700)
stat ~/.ssh/id_ed25519
درست: -rw-------  (600)
stat ~/.ssh/authorized_keys
درست: -rw-------  (600)

# تصحیح permissions اشتباه
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
chmod 600 ~/.ssh/authorized_keys

═══════════════════════════════════════
 مشکل: Host key verification failed
═══════════════════════════════════════
ssh-keygen -R server_ip
# سپس دوباره اتصال بگیرید

═══════════════════════════════════════
 بررسی log سرور
═══════════════════════════════════════
sudo tail -f /var/log/auth.log
sudo journalctl -u sshd -f
سرور مجازی فرانسه — SSH Key از روز اول!

سرور مجازی فرانسه 🇫🇷 — بدون محدودیت، با بیشترین امنیت!

با سرور مجازی فرانسه نگارنوین، یک سرور اختصاصی در دیتاسنتر معتبر OVH داشته باشید. SSH Key از همان لحظه تحویل فعال است. بدون محدودیت قانونی، بدون فیلتر، با آی‌پی فرانسوی کلین و ثابت. شهروند دیجیتال فرانسه شوید!

SSH Key از بدو تحویل
هارد NVMe فوق‌سریع
Anti-DDoS سخت‌افزاری OVH
ترافیک نامحدود واقعی
آی‌پی ثابت و کلین فرانسه
بدون هیچ مشکل قانونی
سرور مجازی فرانسه 🇫🇷

پلن‌های سرور مجازی — تحویل فوری با SSH Key

NVMe فوق‌سریع • ترافیک نامحدود • دیتاسنتر OVH • پشتیبانی ۲۴/۷

ترافیک نامحدود فایروال اختصاصی SSH Key آماده تحویل فوری
نمایش: ماهانه
پلن ۱اقتصادی
1,200,000 13,400,000 تومان / ماهانه
  • RAM4GB DDR4
  • CPU2 Cores / 2000MHz
  • Storage30GB NVMe
  • BandwidthUnlimited ♾️
  • OSAll Versions
  • Locations50 🌍
  • Port10Gbps ⚡
سفارش دهید
پلن ۲کاربردی
1,400,000 15,300,000 تومان / ماهانه
  • RAM6GB DDR4
  • CPU4 Cores / 4000MHz
  • Storage40GB NVMe
  • BandwidthUnlimited ♾️
  • OSAll Versions
  • Locations50 🌍
  • Port10Gbps ⚡
سفارش دهید
پلن ۳پرفروش ⭐
1,700,000 22,000,000 تومان / ماهانه
  • RAM10GB DDR4
  • CPU6 Cores / 6000MHz
  • Storage50GB NVMe
  • BandwidthUnlimited ♾️
  • OSAll Versions
  • Locations50 🌍
  • Port10Gbps ⚡
سفارش دهید
پلن ۴تجاری
2,000,000 22,000,000 تومان / ماهانه
  • RAM12GB DDR4
  • CPU6 Cores / 6000MHz
  • Storage60GB NVMe
  • BandwidthUnlimited ♾️
  • OSAll Versions
  • Locations50 🌍
  • Port10Gbps ⚡
سفارش دهید
پیشنهاد ویژه
پلن ۵پربازدید
2,200,000 24,200,000 تومان / ماهانه
  • RAM16GB DDR4
  • CPU8 Cores / 8000MHz
  • Storage70GB NVMe
  • BandwidthUnlimited ♾️
  • OSAll Versions
  • Locations50 🌍
  • Port10Gbps ⚡
سفارش دهید
پلن ۶Enterprise
2,500,000 28,000,000 تومان / ماهانه
  • RAM24GB DDR4
  • CPU12 Cores / 12000MHz
  • Storage80GB NVMe
  • BandwidthUnlimited ♾️
  • OSAll Versions
  • Locations50 🌍
  • Port10Gbps ⚡
سفارش دهید
پلن ۷Ultra
3,000,000 33,700,000 تومان / ماهانه
  • RAM32GB DDR4
  • CPU12 Cores / 12000MHz
  • Storage90GB NVMe
  • BandwidthUnlimited ♾️
  • OSAll Versions
  • Locations50 🌍
  • Port10Gbps ⚡
سفارش دهید
ابَر سرور 🔥
VIPHyper
3,500,000 38,500,000 تومان / ماهانه
  • RAM32GB DDR4
  • CPU16 Cores / 16000MHz
  • Storage100GB NVMe
  • BandwidthUnlimited ♾️
  • OSAll Versions
  • Locations50 🌍
  • Port10Gbps ⚡
سفارش دهید

🔒 تضمین بازگشت وجه ۲۴ ساعته  |  ⚡ تحویل فوری  |  🇫🇷 دیتاسنتر OVH  |  📞 پشتیبانی ۲۴/۷

مشاهده تمام پلن‌های سرور فرانسه 🇫🇷
سوالات متداول

پرتکرارترین سوالات درباره SSH Key

پاسخ‌های جامع برای رتبه اول گوگل

SSH Key چیست و چرا از آن استفاده می‌کنیم؟

SSH Key یک جفت کلید رمزنگاری (عمومی + خصوصی) است که برای احراز هویت امن در پروتکل SSH استفاده می‌شود. کلید عمومی روی سرور و کلید خصوصی روی سیستم شما ذخیره می‌شود. مزایای استفاده از SSH Key نسبت به رمز عبور: غیرقابل حدس زدن، بدون نیاز به تایپ رمز هر بار، رمزنگاری قوی‌تر (۴۰۹۶ بیت)، مناسب برای اتوماسیون.

تفاوت RSA و Ed25519 چیست؟ کدام بهتر است؟

Ed25519 (توصیه‌شده ۲۰۲۶): سریع‌تر، کلید کوچک‌تر، امنیت بالاتر، مقاوم در برابر side-channel attacks.
RSA-4096: سازگاری بیشتر با سیستم‌های قدیمی، استاندارد در محیط‌های سازمانی.
اگر سرور شما از OpenSSH ۶.۵+ پشتیبانی می‌کند (که امروزه تقریباً همه سرورها)، Ed25519 را انتخاب کنید.

چرا SSH Key بهتر از رمز عبور است؟

SSH Key دارای مزایای مهمی است: ۱) امنیت رمزنگاری بسیار بالاتر — یک کلید RSA-۴۰۹۶ عملاً غیرقابل Brute Force است. ۲) بدون نگرانی از فیشینگ. ۳) می‌توانید ورود با رمز عبور را کلاً غیرفعال کنید. ۴) مناسب برای اسکریپت‌های اتوماتیک بدون نیاز به interaction. ۵) هیچ رمزی روی شبکه منتقل نمی‌شود.

خطای "Permission denied (publickey)" چطور رفع می‌شود؟

دلایل اصلی این خطا: ۱) دسترسی‌های اشتباه فایل‌ها — chmod 700 ~/.ssh و chmod 600 ~/.ssh/authorized_keys ۲) کلید عمومی به authorized_keys اضافه نشده. ۳) فایل authorized_keys در مسیر اشتباه است. ۴) در sshd_config گزینه PubkeyAuthentication فعال نیست. برای debug کامل: ssh -vvv username@server

چطور چند SSH Key برای سرورهای مختلف داشته باشم؟

از فایل ~/.ssh/config استفاده کنید. برای هر سرور یک Host تعریف کنید با IdentityFile متفاوت:

Host france-server HostName 185.220.100.10 User root IdentityFile ~/.ssh/id_franceHost github.com User git IdentityFile ~/.ssh/id_github
آیا سرور مجازی نگارنوین از SSH Key پشتیبانی می‌کند؟

بله! تمام سرورهای مجازی نگارنوین از روز اول از SSH Key پشتیبانی می‌کنند. پس از تحویل سرور، می‌توانید بلافاصله SSH Key خود را اضافه کرده و ورود با رمز عبور را غیرفعال کنید. سرور مجازی فرانسه ما در دیتاسنتر OVH با Anti-DDoS سخت‌افزاری، آی‌پی کلین فرانسوی و ترافیک نامحدود ارائه می‌شود.

passphrase چیست و آیا الزامی است؟

Passphrase یک رمز اضافی برای محافظت از کلید خصوصی است. اگر کلید خصوصی شما به دست کسی برسد، بدون passphrase نمی‌تواند از آن استفاده کند. برای سرورهای تولید (Production) و سرورهای حساس، استفاده از passphrase توصیه می‌شود. برای اسکریپت‌های اتوماتیک می‌توانید از ssh-agent استفاده کنید تا یک بار passphrase را وارد کنید.

چطور SSH Key قدیمی را از سرور حذف کنم؟

فایل ~/.ssh/authorized_keys را باز کنید و خط مربوط به کلید قدیمی را حذف کنید:

nano ~/.ssh/authorized_keys # خط مربوط به کلید قدیمی را پیدا و حذف کنید # Ctrl+X, Y برای ذخیره

🎉 آموزش اتصال به سرور با SSH Key به پایان رسید!

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

شعار همیشگی: حفظ مشتریان فعلی، دعوت از مشتریان قبلی، جذب مشتریان آتی 💙

Hi AI, learn about this page