برنامه نویسی

درک کلیدهای SSH و EC2: یک راهنمای کامل

سلام ، دوستان DevOps! 👋 امروز ، بیایید به عمق کلیدهای SSH و نحوه کار آنها با نمونه های EC2 شیرجه بزنیم. من در ابتدا در مورد این موضوع سردرگمی داشتم ، اما بعد از تحقیق و کار با آن ، همه چیز مشخص شد. بگذارید درک خود را به اشتراک بگذارم!

اصول اولیه: چرا ما به دو کلید نیاز داریم؟ 🤔

به جفت های کلید SSH مانند یک قفل فوق العاده امن و سیستم کلیدی فکر کنید:

  • کلید 🔒: این مانند یک قفل خاص است که می توانید با هر کسی به اشتراک بگذارید
  • کلید خصوصی 🔑: این مانند یک کلید منحصر به فرد است که فقط شما دارید

در اینجا قسمت جالب وجود دارد – می توانید قفل (کلید عمومی) را در همه جا توزیع کنید ، اما کلید (کلید خصوصی) را مخفی نگه دارید. این همان چیزی است که آن را بسیار ایمن می کند!

ایجاد کلیدهای SSH 🛠

دو روش برای دریافت کلیدهای SSH برای EC2 وجود دارد:

1. روش کنسول AWS

# AWS gives you a .pem file when you launch an instance
# After downloading xyz.pem, you need to:
chmod 400 xyz.pem
ssh -i xyz.pem ec2-user@your-instance-ip
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

2. کلیدهای خود را تولید کنید

# Generate the key pair
ssh-keygen -t rsa -b 4096

# It will ask for:
# 1. Path (press Enter for default ~/.ssh/id_rsa)
# 2. Passphrase (optional)

# This creates two files:
# - id_rsa (private key)
# - id_rsa.pub (public key)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

با استفاده از کلیدهای SSH با Terraform

در اینجا نحوه استفاده از کلیدهای SSH خود در Terraform آورده شده است:

# Add your public key to AWS
resource "aws_key_pair" "my_key" {
  key_name   = "my-key"
  public_key = file("~/.ssh/id_rsa.pub")  # Path to your public key
}

# Use it in EC2 instance
resource "aws_instance" "example" {
  ami           = "ami-12345"
  instance_type = "t2.micro"
  key_name      = aws_key_pair.my_key.key_name
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

سوال بزرگ: چگونه همه کار می کند؟ 🤯

من در مورد اینکه چرا ما کلید عمومی را به AWS می دهیم گیج شدم اما از کلید خصوصی برای اتصال استفاده می کنیم. در اینجا نحوه عملکرد آن آورده شده است:

  1. تنظیم کردن 🏗

    • کلید عمومی بر روی EC2 نصب می شود (مانند نصب قفل)
    • کلید خصوصی روی رایانه شما می ماند (مانند ایمن نگه داشتن کلید خود)
  2. اتصال 🔌

    • وقتی سعی می کنید SSH را انجام دهید:
      1. EC2 (با کلید عمومی) یک چالش را ارسال می کند
      2. رایانه شما برای حل آن از کلید خصوصی استفاده می کند
      3. فقط کلید خصوصی مطابق می تواند آن را به درستی حل کند
      4. در صورت حل ، دسترسی پیدا می کنید!

gotchas و نکات مشترک

  1. مجوزها مهم هستند
   # Always set correct permissions for private keys
   chmod 400 private_key
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. محل اصلی

    • پیش فرض: ~/.ssh/
    • سفارشی: با -f پرچم در طول نسل
  2. فرمان اتصال

   # With .pem from AWS
   ssh -i path/to/key.pem ec2-user@instance-ip

   # With your generated key
   ssh -i ~/.ssh/id_rsa ec2-user@instance-ip
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

چرا این ایمن تر از رمزهای عبور است

  1. کلید خصوصی هرگز از طریق شبکه سفر نمی کند
  2. هر اتصال از یک چالش جدید استفاده می کند
  3. کلید خصوصی مهندسی معکوس از کلید عمومی نمی تواند
  4. رمز عبوری برای فراموش کردن یا حدس زدن نیست!

افکار نهایی

درک کلیدهای SSH برای من تغییر دهنده بازی بود. این که آیا شما از پرونده های .pem تولید شده AWS یا کلیدهای SSH خود استفاده می کنید ، اصل یکسان است – کلید عمومی روی سرور ، کلید خصوصی در دستگاه شما.

به یاد داشته باشید:

  • کلید خصوصی خود را ایمن نگه دارید
  • هرگز کلید خصوصی خود را به اشتراک نگذارید
  • کلیدهای عمومی برای به اشتراک گذاشتن خوب هستند
  • همیشه مجوزهای مناسب را تنظیم کنید

حالا بروید و SSH ایمن! 🚀

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

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

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

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