创建亚马逊服务器和云数据中心 SSH 密钥的完整指南
در این مقاله به بررسی مراحل ساخت کلید SSH برای ورود ایمن به سرورهای ابری و دیتاسنترها می‌پردازیم. بیاموزید چگونه در ویندوز و لینوکس این کلیدها را ایجاد و استفاده کنید.

创建亚马逊服务器和云数据中心 SSH 密钥的完整指南

本文将教您如何安全、专业地生成 SSH 密钥,以便安全登录亚马逊云服务器和数据中心。您将学习在 Windows 和 Linux 系统上的实用方法,以及服务器安全和管理的最佳实践。.
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 ~/.sshchmod 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

  • 不允许RootLogin

  • 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

ServerAliveIntervalServerAliveCountMax در 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 منظم کلیدها

您可能也喜欢