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

راهنمای کامل ساخت کلید SSH برای سرورهای آمازون و دیتاسنترهای ابری

این مقاله به شما آموزش می‌دهد چگونه به‌صورت امن و حرفه‌ای کلیدهای SSH را برای ورود ایمن به سرورهای ابری و دیتاسنترهای آمازون بسازید. با روش‌های عملی در ویندوز و لینوکس آشنا خواهید شد و بهترین شیوه‌ها برای امنیت و مدیریت سرورها را یاد می‌گیرید.
0 الأسهم
0
0
0
0

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

در محیط‌های ابری و دیتاسنترهای بین‌المللی، ورود ایمن و خودکار به سرورها یکی از پایه‌های هر عملیات DevOps، میزبانی وب، رندرینگ، AI و مدیریت دیتابیس است. مفاتيح SSH روش استاندارد، امن و قابل اسکریپت شدن برای احراز هویت هستند و جایگزین رمزعبورهای ضعیف می‌شوند.

استفاده از کلیدهای عمومی/خصوصی باعث کاهش خطر brute-force، آسان‌تر شدن اتوماسیون و پیاده‌سازی دسترسی‌های دقیق‌تر می‌شود.

پیش‌نیازها و مفاهیم پایه

کلید خصوصی (Private key): فایل محرمانه شما که نباید افشا شود.

کلید عمومی (Public key): فایلی که روی سرور قرار می‌گیرد (authorized_keys).

الگوریتم‌های رایج: ed25519 (توصیه‌شده)، rsa 4096.

مسیرها: ~/.ssh/id_* در لینوکس/WSL و C:\Users\\.ssh در ویندوز.

دسترسی‌ها: chmod 700 ~/.ssh و chmod 600 برای کلید خصوصی.

ساخت کلید SSH در لینوکس / macOS / WSL

توصیه می‌شود از ed25519 استفاده کنید مگر به‌دلیل سازگاری نیاز به RSA داشته باشید.

مراحل تولید و مدیریت کلید در شل

ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_ed25519 -o -a 100
ssh-keygen -t rsa -b 4096 -C "[email protected]" -f ~/.ssh/id_rsa -o -a 100
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
ls -la ~/.ssh
cat ~/.ssh/id_ed25519.pub
ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2222 [email protected]
chmod 400 my-aws-key.pem
ssh -i my-aws-key.pem [email protected]

نکته: در AWS اغلب در زمان راه‌اندازی Instance، یا کلید را انتخاب می‌کنید یا آن را ایمپورت می‌کنید. در صورتی که فایل PEM دارید، همان را به‌عنوان Identity استفاده کنید.

ساخت کلید SSH در ویندوز (PowerShell / Windows OpenSSH)

Windows 10/11 دارای OpenSSH client است؛ همچنین می‌توانید از PuTTY/Puttygen برای اتصال با PuTTY استفاده کنید.

دستورات PowerShell

ssh-keygen -t ed25519 -C "[email protected]" -f $env:USERPROFILE\.ssh\id_ed25519
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519

مسیر فایل‌ها:

  • C:\Users\\.ssh\id_ed25519

  • C:\Users\\.ssh\id_ed25519.pub

تبدیل PEM به PPK با PuTTYgen

الخطوات العامة:

  • PuTTYgen را باز کنید.

  • File > Load private key و فایل my-aws-key.pem را لود کنید (نمایش همه فایل‌ها).

  • Save private key به‌صورت my-aws-key.ppk و استفاده در PuTTY (Connection > SSH > Auth > Private key file).

ایمپورت کلید عمومی در AWS EC2 و دیگر پنل‌های ابری

AWS Console: EC2 > Key Pairs > Import key pair. نام و محتوای فایل .pub را وارد کنید.

در هنگام ساخت Instance می‌توانید Key pair موجود را انتخاب کنید. سایر دیتاسنترها اغلب گزینه Upload/Import SSH key در پنل دارند.

نمونه cloud-init برای افزودن کلید عمومی

#cloud-config
ssh_authorized_keys:
  - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... [email protected]

اضافه کردن کلید به GitLab / GitHub و استفاده در CI

برای GitLab: User Settings > SSH Keys و کلید عمومی را Paste کنید. برای Deploy keys به پروژه بروید.

در CI/CD کلید خصوصی را به‌عنوان متغیر محافظت‌شده آپلود کنید و در job با ایجاد فایل با دسترسی محدود از آن استفاده کنید (chmod 600).

تنظیمات سرور و امنیت پس از نصب کلید

مرحله اول: دسترسی‌ها را تنظیم کنید.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_ed25519

سپس تنظیمات /etc/ssh/sshd_config را بررسی و به‌روزرسانی کنید:

  • PasswordAuthentication no

  • PermitRootLogin no

  • PubkeyAuthentication yes

  • أنت تستطيع السماح للمستخدمين را برای محدود کردن کاربران تنظیم کنید.

  • UseDNS no و تغییر پورت در صورت تمایل.

sudo systemctl restart sshd

جدار الحماية:

sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw allow 2222/tcp

برای جلوگیری از brute-force از Fail2ban یا CrowdSec استفاده کنید:

sudo apt install fail2ban

برای سرورهای حساس از bastion/jump host استفاده کنید تا دسترسی مستقیم به شبکه‌های خصوصی محدود شود.

نصائح عملية لتطبيقات مختلفة

برای تریدرها (VPS مخصوص ترید)

اختر موقعًا: نزدیک به سرورهای بروکر یا صرافی برای کمترین latency. ما بیش از ۸۵ لوکیشن جهانی داریم که می‌تواند موقعیت نزدیک به بازار هدف را فراهم کند.

محدود کردن SSH تنها به IP ثابت یا از طریق VPN توصیه می‌شود:

sudo ufw allow from 203.0.113.5 to any port 22

برای گیمرها (VPS مخصوص گیم)

برای سرورهای بازی از لوکیشن‌هایی با Peering قوی و CDN/BGP مناسب استفاده کنید. از کلید SSH به‌جای پسورد و یک bastion host برای کاهش attack surface بهره ببرید.

برای هوش مصنوعی و رندرینگ (GPU Cloud)

برای اتصال به سرورهای GPU از کلیدهای قوی (ed25519 / RSA4096) استفاده کنید و برای هر پروژه یک کاربر و کلید مجزا اختصاص دهید.

rsync -avz -e "ssh -i ~/.ssh/id_ed25519 -p 2222" /local/path user@remote:/remote/path

برای هاستینگ و GitLab میزبانی

برای دسترسی اتوماتیک سرور به مخازن خصوصی از یک کلید مخصوص سرور (Deploy key) با دسترسی محدود استفاده کنید.

مدیریت کلیدها، rotation و استانداردها

  • دوره‌ای کلیدها را rotate کنید (مثلاً هر 6 تا 12 ماه).

  • کلیدهای قدیمی را از المفاتيح المعتمدة و پنل ابری حذف کنید.

  • از passphrase برای private key و ذخیره در password manager استفاده کنید.

  • در سازمان‌ها از SSH certificates و CA برای مدیریت متمرکز استفاده کنید (OpenSSH CA).

نکات تکمیلی و Troubleshooting

در مواجهه با خطای Permission denied (publickey) بررسی کنید که public key در ~/.ssh/authorized_keys وجود دارد و دسترسی‌ها صحیح است.

sudo journalctl -u sshd -e
sudo tail -f /var/log/auth.log

اگر از ProxyJump یا jump host استفاده می‌کنید، فایل کانفیگ مفید است:

Host bastion
  HostName bastion.example.com
  User ubuntu
  IdentityFile ~/.ssh/id_ed25519

Host internal-*
  ProxyJump bastion
  User deploy
  IdentityFile ~/.ssh/id_deploy

من ServerAliveInterval و ServerAliveCountMax در ssh config برای جلوگیری از قطع ناگهانی جلسات استفاده کنید.

التوصيات الأمنية النهائية

محدود کردن دسترسی SSH به IPها، استفاده از VPN یا private network و استفاده از سرویس‌های anti-DDoS برای سرورهای حساس از دیگر نکات مهم است.

جمع‌بندی و چک‌لیست پیشنهادی

  • ساخت کلید: ed25519 با passphrase

  • محافظت فایل‌ها: chmod 700 ~/.ssh && chmod 600 private_key

  • فعال‌سازی SSH-Agent و افزودن کلید

  • آپلود کلید عمومی در پنل AWS یا دیتاسنتر یا استفاده از cloud-init

  • غیرفعال کردن PasswordAuthentication و PermitRootLogin

  • فایروال/UFW و Fail2ban یا CrowdSec

  • استفاده از bastion، محدود کردن IP و استفاده از VPN برای دسترسی‌های حساس

  • نسخه‌برداری و rotation منظم کلیدها

قد يعجبك أيضاً