پرش به مطلب اصلی

مدیریت کلیدهای SSH

مدیریت کلیدهای SSH برای دسترسی امن به ابرک‌ها در سرور ابری آروان‌کلاد.

مرور کلی

دستورهای ssh-key ابزارهایی برای مدیریت کلیدهای عمومی SSH فراهم می‌کند که برای احراز هویت امن در سرورهای ابری استفاده می‌شوند. کلیدهای SSH جایگزینی امن‌تر برای رمزهای عبور سنتی هستند.

شناسه‌ی مستعار (Alias): ssh

دستورها

۱. لیست کلیدهای SSH

نمایش لیست تمام کلیدهای SSH ثبت‌شده در حساب کاربری.

arvan iaas ssh-key list

شناسه‌ی مستعار: ls

فلگ‌ها:

  • region-- و r-: فیلتر بر اساس کد ریجن (مانند ir-central1)
  • az-- و a-: فیلتر بر اساس دیتاسنتر (مانند ir-central1-a)

مثال:

$ arvan iaas ssh-key list --region=ir-central1

خروجی (Output):

NAME            FINGERPRINT                                       AZ
my-laptop-key a1:b2:c3:d4:e5:f6:01:23:45:67:89:ab:cd:ef:01:23 ir-central1-a
production-key b2:c3:d4:e5:f6:01:23:45:67:89:ab:cd:ef:01:23:45 ir-central1-a
backup-key c3:d4:e5:f6:01:23:45:67:89:ab:cd:ef:01:23:45:67 ir-central1-b

۲. نمایش جزییات کلید SSH

نمایش اطلاعات دقیق درباره‌ی یک کلید SSH مشخص.

arvan iaas ssh-key show <ssh-key-name>

شناسه‌ی مستعار: sh

آرگومان‌ها:

  • ssh-key-name (اجباری): نام کلید SSH

مثال:

$ arvan iaas ssh-key show my-laptop-key

خروجی:

SSH KEY DETAILS
---------------
Name: my-laptop-key
Fingerprint: a1:b2:c3:d4:e5:f6:01:23:45:67:89:ab:cd:ef:01:23
AZ: ir-central1-a
Created: 2025-01-05T14:30:00Z


PUBLIC KEY
----------
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC8yN9xKzJ2... user@laptop

۳. افزودن کلید SSH

افزودن یک کلید SSH جدید به حساب کاربری.

arvan iaas ssh-key add <name>

آرگومان‌ها:

  • name (اجباری): نام برای کلید SSH

فلگ‌ها:

  • public-key-- و k-: محتوای کلید عمومی
  • key-file-- و f-: مسیر فایل کلید عمومی (مانند ssh/id_rsa.pub/~.)
  • az-- و a-: دیتاسنتر برای افزودن کلید (اجباری)

شما باید حتمن یکی از دو فلگ public-key-- یا key-file-- را وارد کنید.

مثال (با استفاده از مسیر فایل):

$ arvan iaas ssh-key add workstation-key --key-file=~/.ssh/id_rsa.pub --az=ir-central1-a

خروجی:

SSH KEY ADDED
-------------
Name: workstation-key
Fingerprint: d4:e5:f6:01:23:45:67:89:ab:cd:ef:01:23:45:67:89
AZ: ir-central1-a

SSH key added successfully!
You can now use this key when creating servers.

۴. حذف کلید SSH

حذف یک کلید SSH از حساب کاربری.

arvan iaas ssh-key delete <ssh-key-name>

شناسه‌ی مستعار: del

آرگومان‌ها:

  • ssh-key-name (اجباری): نام کلید SSH برای حذف

مثال:

$ arvan iaas ssh-key delete backup-key

خروجی:

SSH KEY TO DELETE
-----------------
Name: backup-key
Fingerprint: c3:d4:e5:f6:01:23:45:67:89:ab:cd:ef:01:23:45:67
AZ: ir-central1-b

Are you sure you want to delete SSH key 'backup-key'? (y/n) y

SSH key deleted successfully!

کار با کلیدهای SSH

ایجاد یک جفت‌کلید SSH جدید

اگر جفت‌کلید SSH ندارید، می‌توانید با استفاده از دستور ssh-keygen آن را بسازید:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/arvan_rsa

با این دستور دو فایل ساخته می‌شود:

  • کلید خصوصی (Private key): ssh/arvan_rsa/~. (این فایل را در جای امن نگه دارید.)
  • کلید عمومی (Public key): ssh/arvan_rsa.pub/~. (این فایل را در آروان‌کلاد آپلود کنید)

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

هنگام ساخت ابرک، نام کلید SSH خود را مشخص کنید:

arvan iaas server create --name=web-server \
--flavor=g1-2-4 \
--image=img-ubuntu2204 \
--az=ir-central1-a \
--ssh-key=my-key

اتصال به ابرک

پس از ساخت ابرک با کلید SSH، به این روش متصل شوید:

ssh -i ~/.ssh/arvan_rsa ubuntu@<server-ip>

نام کاربری بر اساس سیستم‌عامل متفاوت است:

  • Ubuntu/Debian: ubuntu
  • CentOS/RHEL: centos یا cloud-user
  • Fedora: fedora

توصیه‌های امنیتی

  • استفاده از کلیدهای قدرت‌مند: از کلیدهای RSA 4096 بیتی یا کلیدهای Ed25519 برای امنیت بیش‌تر استفاده کنید.
  • کلیدهای منحصربه‌فرد: برای اهداف مختلف (مانند توسعه و عملیات) از کلیدهای متفاوت استفاده کنید.
  • ذخیره‌سازی امن: هرگز کلید خصوصی خود را به اشتراک نگذارید و دسترسی‌های فایل آن را محدود کنید (chmod 600).
  • نام‌گذاری مناسب: از نام‌های توصیفی برای شناسایی راحت کلیدها استفاده کنید (مانند prod-web-server).
  • جایگزینی دوره‌ای: برای حفظ امنیت، کلیدهای خود را به‌طور منظم تعویض (Rotate) کنید.

عیب‌یابی

  • خطای Permission Denied (publickey):
    • مطمین شوید از کلید خصوصی صحیح استفاده می‌کنید.
    • بررسی کنید که کلید عمومی به‌درستی در آروان‌کلاد اضافه شده باشد.
    • سطح دسترسی کلید خصوصی را بررسی کنید: chmod 600 ~/.ssh/your_key.
  • خطای Key Already Exists:
    • نام هر کلید در یک دیتاسنتر باید یکتا باشد. نام دیگری انتخاب کنید یا کلید قبلی را حذف کنید.
  • خطای Can't Read Key File:
    • صحت مسیر فایل و دسترسی خواندن آن را بررسی کنید.

جدول دستورها

دستورشناسه‌ی مستعارتوضیحآرگومان‌ها
ssh-key listlsلیست تمام کلیدهای SSHندارد
ssh-key showshنمایش جزییات یک کلید خاص<ssh-key-name>
ssh-key add-افزودن کلید SSH جدید<name>
ssh-key deletedelحذف یک کلید SSH<ssh-key-name>