درک کلیدهای 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 می دهیم گیج شدم اما از کلید خصوصی برای اتصال استفاده می کنیم. در اینجا نحوه عملکرد آن آورده شده است:
-
تنظیم کردن 🏗
- کلید عمومی بر روی EC2 نصب می شود (مانند نصب قفل)
- کلید خصوصی روی رایانه شما می ماند (مانند ایمن نگه داشتن کلید خود)
-
اتصال 🔌
- وقتی سعی می کنید SSH را انجام دهید:
- EC2 (با کلید عمومی) یک چالش را ارسال می کند
- رایانه شما برای حل آن از کلید خصوصی استفاده می کند
- فقط کلید خصوصی مطابق می تواند آن را به درستی حل کند
- در صورت حل ، دسترسی پیدا می کنید!
- وقتی سعی می کنید SSH را انجام دهید:
gotchas و نکات مشترک
- مجوزها مهم هستند
# Always set correct permissions for private keys
chmod 400 private_key
-
محل اصلی
- پیش فرض:
~/.ssh/
- سفارشی: با
-f
پرچم در طول نسل
- پیش فرض:
-
فرمان اتصال
# 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
چرا این ایمن تر از رمزهای عبور است
- کلید خصوصی هرگز از طریق شبکه سفر نمی کند
- هر اتصال از یک چالش جدید استفاده می کند
- کلید خصوصی مهندسی معکوس از کلید عمومی نمی تواند
- رمز عبوری برای فراموش کردن یا حدس زدن نیست!
افکار نهایی
درک کلیدهای SSH برای من تغییر دهنده بازی بود. این که آیا شما از پرونده های .pem تولید شده AWS یا کلیدهای SSH خود استفاده می کنید ، اصل یکسان است – کلید عمومی روی سرور ، کلید خصوصی در دستگاه شما.
به یاد داشته باشید:
- کلید خصوصی خود را ایمن نگه دارید
- هرگز کلید خصوصی خود را به اشتراک نگذارید
- کلیدهای عمومی برای به اشتراک گذاشتن خوب هستند
- همیشه مجوزهای مناسب را تنظیم کنید
حالا بروید و SSH ایمن! 🚀