آموزش ساخت کلید SSH #
در این آموزش یاد خواهید گرفت که چگونه با یک کلید SSH کار کنید. این شامل تولید یک جفت کلید SSH، کپی کردن کلید عمومی به یک دستگاه از راه دور و حذف یک جفت کلید SSH خواهد بود.
توضیحات کوتاه SSH key
پوسته امن (SSH) یک پروتکل شبکه است که برای ارتباط رمزگذاری شده بین دو دستگاه استفاده میشود. برای برقراری اتصال SSH، میتوانید از رمز عبور یا کلید SSH برای احراز هویت استفاده کنید. یک جفت کلید SSH دارای دو جزء است، یک کلید خصوصی و یک کلید عمومی. هر کلید از یک رشته طولانی از کاراکترها تشکیل شده است.
- کلید عمومی از یک الگوریتم خاص برای رمزگذاری پیامها استفاده میکند.
- کلید خصوصی از یک الگوریتم خاص برای رمزگشایی پیامها استفاده میکند.
فقط یک کلید خصوصی میتواند پیامهایی را که با یک کلید عمومی رمزگذاری شدهاند، رمزگشایی کند و هر دو کلید باید بخشی از یک جفت کلید باشند. کلید عمومی در تمام دستگاههای راه دوری که میخواهید از طریق کلید به آنها متصل شوید، ذخیره میشود. این بدان معناست که هر کسی که کلید خصوصی شما را در اختیار داشته باشد، میتواند تمام پیامهای آن دستگاه را نیز رمزگشایی کند. به همین دلیل، کلید خصوصی همیشه باید مخفی نگه داشته شود و هرگز به اشتراک گذاشته نشود. یکی از مزایای این روش احراز هویت این است که از رمزهای عبور ایمنتر است.
کلیدهای SSH امکان احراز هویت خودکار اتصالات را فراهم میکنند. عمدتاً ۴ مرحله وجود دارد:
- کلید عمومی کلاینت باید روی سرور باشد.
- سرور از کلید عمومی برای رمزگذاری یک پیام تصادفی استفاده میکند که سپس برای کلاینت ارسال میشود.
- کلاینت از کلید خصوصی برای رمزگشایی پیام استفاده میکند.
- اگر پیام به درستی رمزگشایی شده باشد، اتصال تأیید شده است.

پیش نیازها
- دانش اولیه در مورد فضای ابری هتزنر
- ابزار CLI
اصطلاحات نمونه
- نام کاربری: holu
- آیپیوی۴:
<10.0.0.1>
لطفاً در تمام دستورات مثال holu، نام کاربری و <10.0.0.1>آدرس IP خود را جایگزین کنید.
مرحله ۱ – تولید کلید SSH #
برای ایجاد کلید SSH در دستگاه محلی خود، لطفاً CLI خود را باز کنید. به طور کلی، کافی است آن را ssh-keygenبدون هیچ مشخصات دیگری اجرا کنید. این دستور به طور پیشفرض یک کلید ایجاد میکند RSA.
ssh-keygenهمچنین میتوان اطلاعات بیشتری در مورد نوع کلید و اندازه کلید ارائه داد.
گزینهها:
-tنوع کلید را مشخص میکند-bاندازه کلید را مشخص میکند
نوع:
rsaed25519dsaecdsa
بسته به نوع، الگوریتمهای مختلفی استفاده میشوند. DSA و ECDSA هر دو شامل پارامتری ( k) هستند که میتواند از نظر امنیتی مشکلساز باشد. اگر از یک پارامتر دو بار استفاده شود، مهاجمان میتوانند از این اطلاعات برای بازیابی کلید خصوصی استفاده کنند . از نظر ریاضی، Ed25519 احتمالاً یکی از قویترین کلیدها است. اگر دستگاه شما از این کلید پشتیبانی نمیکند، میتوانید یک کلید RSA نیز تولید کنید.
- کلید Ed25519Ed25519 بسیار امن در نظر گرفته میشود. این کلید توسط OpenSSH 6.۵ (۲۰۱۴) و تمام نسخههای بعدی آن پشتیبانی میشود. اگر دستگاه شما از این کلید پشتیبانی میکند، توصیه میکنیم از آن استفاده کنید. اندازه کلید ثابت است و قابل تغییر نیست.
$ ssh-keygen -t ed25519 - کلید RSAدر مقایسه با سایر کلیدها، RSA را میتوان نسبتاً قدیمی در نظر گرفت. به اندازه کلید Ed25519 امن نیست. RSA دارای اندازه کلید پیشفرض ۳۰۷۲ بیت است و هرگز نباید کمتر از ۱۰۲۴ بیت باشد. برای افزایش امنیت، میتوانید اندازه کلید را روی ۴۰۹۶ بیت تنظیم کنید.
$ ssh-keygen -t rsa -b ۴۰۹۶ - کلید ECDSAECDSA توسط OpenSSH 5.۷ (۲۰۱۱) و تمام نسخههای بعدی پشتیبانی میشود. میتوانید اندازه کلید را روی ۲۵۶، ۳۸۴ یا ۵۲۱ بیت تنظیم کنید. تنظیم پیشفرض ۲۵۶ بیت است.
- کلید DSADSA نسبتاً ناامن تلقی میشود. پشتیبانی از OpenSSH 7.۰ (۲۰۱۷) به پایان رسید. اندازه کلید ۱۰۲۴ بیت ثابت است و قابل تغییر نیست.
پس از اجرای دستور تولید کلید SSH، باید خروجی شبیه به این دریافت کنید:
Generating public/private <type> key pair.
Enter file in which to save the key (/<your_home>/.ssh/id_<type>):مکان پیشفرض برای ذخیره کلید، است /<your_home>/.ssh/id_<type>. میتوانید ENTERبرای تأیید تنظیمات پیشفرض یا تعیین مکان دیگری، فشار دهید. در صورت امکان، باید پیشفرض را حفظ کنید. به این ترتیب، کلاینت SSH میتواند هنگام احراز هویت، کلید را به طور خودکار پیدا کند. اگر از قبل یک کلید SSH از همان نوع دارید، ممکن است چیزی شبیه به این دریافت کنید:
/home/your_home/.ssh/id_<type> already exists.
Overwrite (y/n)?اگر وارد کنید y، کلید SSH موجود رونویسی میشود و دیگر نمیتوانید از آن استفاده کنید.
پس از تنظیم مکان، از شما خواسته میشود که یک عبارت عبور تعیین کنید.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:یک عبارت عبور، امنیت را حتی بیشتر افزایش میدهد. اگر یک عبارت عبور تنظیم کنید، هر بار که از کلید خود استفاده میکنید، از شما خواسته میشود که آن را وارد کنید. اگر ENTERبدون وارد کردن عبارت عبور، کلید SSH خود را فشار دهید، عبارت عبوری نخواهد داشت. خروجی:
Your identification has been saved in /<your_home>/.ssh/id_<type>
Your public key has been saved in /<your_home>/.ssh/id_<type>.pubکلید SSH اکنون ایجاد شده و در مکانی که قبلاً تعیین کرده بودید ذخیره شده است.
مرحله ۲ – باز کردن کلید SSH #
وقتی یک کلید SSH ایجاد میکنید، یک دایرکتوری SSH با چندین فایل نیز ایجاد میشود. فایلهای مهم عبارتند از:
id_<type>id_<type>.pubauthorized_keys
این id_<type>فایل برای کلید خصوصی است . این فایل هرگز نباید با هیچ کس دیگری به اشتراک گذاشته شود.
این id_<type>.pubفایل مربوط به کلید عمومی است . این بخشی است که باید با دستگاههای راه دوری که میخواهید از طریق کلید SSH به آنها متصل شوید، به اشتراک بگذارید. در آن دستگاههای راه دور، کلید عمومی در این authorized_keysفایل ذخیره میشود.
این authorized_keysفایل برای کلیدهای عمومی تمام دستگاههایی است که مجاز به اتصال به دستگاه از طریق کلید SSH هستند. فرمت این فایل یک کلید در هر خط است. اتصال به یک دستگاه از راه دور از طریق کلید SSH امکانپذیر نیست، مگر اینکه کلید عمومی در این فایل باشد.
برای باز کردن دایرکتوری SSH از دستور زیر استفاده کنید:
cd ~/.sshمیتوانید از آن lsبرای فهرست کردن تمام فایلهای درون دایرکتوری استفاده کنید. میتوانید فایلها را با catاستفاده از نام فایل و به دنبال آن، باز کنید. میتوانید از دستور زیر برای باز کردن کلید عمومی خود استفاده کنید:
cat id_<type>.pubلطفا <type>نام واقعی فایل خود را جایگزین کنید.
مرحله ۳ – اتصال به سرور #
سه فایل مهم کلید SSH قبلاً در مرحله ۲ توضیح داده شدهاند. اما یک فایل دیگر نیز وجود دارد که باید به آن اشاره شود.
known_hosts
این فایل هنگام اتصال به دستگاه دیگر مورد نیاز است. هر دستگاه از راه دور یک اثر انگشت منحصر به فرد دارد که در این فایل ذخیره میشود. اگر برای اولین بار به سرور خود متصل میشوید ، باید از چند نکته آگاه باشید. اتصال از طریق SSH:
$ ssh holu@<۱۰.۰.۰.۱>لطفاً holuنام کاربری و <10.0.0.1>آدرس IP خود را جایگزین کنید. اگر تازه از یک سرور جدید شروع کردهاید و کاربران جدیدی ایجاد نکردهاید، نام کاربری شما احتمالاً خواهد بود root.
اولین باری که به سرور خود متصل میشوید، هشداری در مورد اصالت میزبان نمایش داده میشود . میتوانید بله را وارد کنید . اثر انگشت نشان داده شده در هشدار به صورت محلی در known_hostsفایل ذخیره میشود و در آینده، هنگامی که سعی میکنید به این آدرس IP متصل شوید، به طور خودکار شناسایی خواهد شد. میتوانید این اثر انگشت را به عنوان یک شناسه منحصر به فرد سرور در نظر بگیرید. معمولاً این اثر انگشت هرگز نباید تغییر کند. با این حال، به عنوان مثال، اگر سرور ابری خود را حذف کنید، این اثر انگشت دیگر معتبر نخواهد بود. اثر انگشت known_hostsبه طور خودکار از فایل حذف نمیشود. اگر پس از تغییر اثر انگشت سعی کنید به این آدرس IP متصل شوید، دستگاه از راه دور اثر انگشت جدید را به سیستم شما ارسال میکند، اما دیگر با اثر انگشت موجود در فایل شما مطابقت نخواهد داشت known_hosts. سیستم شما اثر انگشت قدیمی موجود در known_hostsفایل شما را نامعتبر تشخیص میدهد و هشداری مانند این را مشاهده خواهید کرد:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:XEBOdibbPpSSWWZZ+0VO6ayoCjFghKys0FfVE6EDWZz.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/user/.ssh/known_hosts:7
remove with:
ssh-keygen -f "/home/user/.ssh/known_hosts" -R "<10.0.0.1>"
ECDSA host key for <10.0.0.1> has changed and you have requested strict checking.
Host key verification failed.اگر هیچ هشداری وجود ندارد، میتوانید به مرحله ۴ ادامه دهید.
اگر هشداری دریافت کردید اما هیچ تغییر اساسی در سیستم از راه دور خود ایجاد نکردهاید، باید این هشدار را جدی بگیرید و درباره دلیل این هشدار اطلاعات بیشتری کسب کنید.
اگر اخطاری دریافت کردید و دلیل آن را میدانید (مثلاً سرور ابری حذف شده است)، میتوانید اثر انگشت قدیمی را از known_hostsفایل حذف کنید. دو راه برای انجام این کار وجود دارد:
- یک راه برای حذف اثر انگشت قدیمی از
known_hostsفایل، استفاده از دستور داده شده در هشدار است:ssh-keygen -f "/home/user/.ssh/known_hosts" -R "<10.0.0.1>"خروجی:
# Host <10.0.0.1> found: line 7 /home/user/.ssh/known_hosts updated. Original contents retained as /home/user/.ssh/known_hosts.old user@<hostname>:/mnt/c/Users/user$این روش نه تنها اثر انگشت را از فایل حذف میکند، بلکه آن را در
known_hosts.oldصورت نیاز مجدد ذخیره میکند.اگر به کپی فایل اصلی نیاز ندارید
known_hosts، میتوانیدknown_hosts.oldفایل و تمام محتویات آن را با استفاده از [ روش دوم] حذف کنیدrm -v known_hosts.oldیا میتوانید از روش دوم برای حذفknown_hostsدستی اثر انگشت از فایل استفاده کنید. پس از حذف اثر انگشت نامعتبر از فایل، میتوانیدssh holu@<10.0.0.1>دوباره به سرور خود متصل شوید. این بار، فقط باید هشداری در مورد صحت میزبان وجود داشته باشد . میتوانید برای ذخیره اثر انگشت جدید در فایل، بلهknown_hostsرا وارد کنید . - راه دیگر برای حذف اثر انگشت از
known_hostsفایل، انجام دستی آن است. اگر بیش از یک اثر انگشت در فایل خود دارید، میتوانید به هشدار مراجعه کنید. این خطOffending ECDSA key in /home/user/.ssh/known_hosts:7نشان میدهد که اثر انگشت در کدام خط ذخیره شده است. در این مثال، خط ۷ است. همچنین میتوانید از دستور زیر برای نمایش کل اثر انگشت استفاده کنید:ssh-keygen -H -F <۱۰.۰.۰.۱>لطفا
<10.0.0.1>آدرس IP خودتان را جایگزین کنید.در خروجی، میتوانید اثر انگشت کامل مربوط به آدرس IP را مشاهده کنید. همچنین خط مربوط به آن در
known_hostsفایل نمایش داده میشود. اکنون میتوانید از آنnanoبرای باز کردن و ویرایشknown_hostsفایل استفاده کنید.$ nano ~/.ssh/known_hostsدر مرحله بعد، میتوانید اثر انگشت قدیمی مربوط به آدرس IP را حذف کنید. پس از اتمام کار، میتوانید از
CTRL+Xبرای ذخیره فایل،Yتأیید وENTERبستن فایل استفاده کنید.اکنون که اثر انگشت نامعتبر حذف شده است، میتوانید
ssh holu@<10.0.0.1>برای اتصال به سرور خود وارد شوید. این بار، فقط باید هشداری در مورد صحت میزبان وجود داشته باشد . میتوانید برای ذخیره اثر انگشت جدید در فایل، بلهknown_hostsرا وارد کنید .
مرحله ۴ – اضافه کردن کلید SSH به سرور #
وقتی یاد گرفتید که چگونه یک کلید SSH تولید کنید و چگونه به دستگاه راه دور متصل شوید، میتوانید کلید عمومی را به دستگاه راه دور خود اضافه کنید. لطفاً توجه داشته باشید که باید احراز هویت کنید. این بدان معناست که باید رمز عبور خود را بدانید یا اگر از کلید SSH دیگری استفاده میکنید، باید کلید عمومی مربوطه قبلاً به کاربر اضافه شده باشد.
روشهای مختلفی برای اضافه کردن کلید SSH به یک دستگاه از راه دور وجود دارد. احتمالاً سادهترین راه برای انجام این کار استفاده از ssh-copy-idدستور است. اگر نمیتوانید از این دستور استفاده کنید، میتوانید به جای آن از یکی از گزینههای زیر استفاده کنید.
| دستورات | الزامات | ||
|---|---|---|---|
| گزینه ۱ | ssh-copy-id | وارد دستگاه محلی (کلاینت) شدم | |
| گزینه ۲ | cat mkdir | وارد دستگاه محلی (کلاینت) شدم | |
| گزینه ۳ | cd cat nano | وارد دستگاه محلی (کلاینت) شدم | وارد دستگاه راه دور (سرور) شدهاید |
| گزینه ۴ | rsync | وارد دستگاه راه دور (سرور) شدهاید |
با گزینههای ۱ و ۲ ، کلید عمومی بهطور خودکار از دستگاه محلی شما (کلاینت) کپی شده و بهطور خودکار در authorized_keysفایل موجود در دستگاه راه دور شما (سرور) جایگذاری میشود.
با گزینه ۳ ، کلید عمومی به صورت دستی از دستگاه محلی شما (کلاینت) کپی شده و به صورت دستی در authorized_keysفایل موجود در دستگاه راه دور شما (سرور) جایگذاری میشود.
با گزینه ۴، کل دایرکتوری SSH یک کاربر (کاربر ۱) در دستگاه راه دور (سرور) شما به کاربر دیگری (کاربر ۲) در دستگاه راه دور (سرور) شما کپی میشود. برای این گزینه، باید قبلاً کلید عمومی خود را به کاربر ۱ اضافه کرده باشید، مثلاً با یکی از سه گزینه دیگر.
کافی است یکی از چهار گزینه بالا را انتخاب کنید و از بقیه صرف نظر کنید.
گزینه ۱ #
این گزینه احتمالاً سادهترین گزینه از بین همه آنهاست. اگر فقط یک کلید SSH دارید، میتوانید به سادگی دستور زیر را اجرا کنید. لطفاً توجه داشته باشید که از شما خواسته میشود رمز عبور کاربری را که میخواهید به آن متصل شوید وارد کنید.
$ ssh-copy-id holu@<۱۰.۰.۰.۱>لطفاً holuنام کاربری و <10.0.0.1>آدرس IP خود را جایگزین کنید. کلید عمومی به طور خودکار از دستگاه محلی شما کپی شده و به authorized_keysفایل موجود در دستگاه راه دور (آدرس IP) اضافه میشود.
اگر بیش از یک کلید SSH روی دستگاه محلی خود دارید، باید نام فایل کلیدی را که میخواهید به کاربر راه دور اضافه کنید، نیز اضافه کنید.
$ ssh-copy-id -i ~/.ssh/id_<type>.pub holu@<۱۰.۰.۰.۱>لطفاً holuنام کاربری و <10.0.0.1>آدرس IP خود را جایگزین کنید. همچنین، <type>باید با نوع واقعی کلید SSH شما جایگزین شود تا با نام فایلی که قرار است دستگاه محلی کلید عمومی SSH را از آن کپی کند، مطابقت داشته باشد. در صورتی که از نام صحیح فایل مطمئن نیستید، میتوانید از دستور زیر ls ~/.sshبرای فهرست کردن تمام فایلهای ذخیره شده در دایرکتوری SSH استفاده کنید. یکی از آن فایلها باید به این شکل نامگذاری شود id_<type>.pub. پس از اجرای ssh-copy-idدستور، کلید عمومی به طور خودکار از دستگاه محلی شما کپی شده و به authorized_keysفایل موجود در دستگاه راه دور شما الصاق میشود.
کلید SSH اکنون ذخیره شده است و دفعه بعد که به سرور خود متصل شوید، به طور خودکار استفاده خواهد شد.
گزینه ۲ #
اگر نمیتوانید از استفاده کنید ssh-copy-id، میتوانید از دستور زیر نیز به عنوان جایگزین استفاده کنید. لطفاً توجه داشته باشید که از شما خواسته میشود رمز عبور کاربری را که میخواهید به آن متصل شوید وارد کنید.
$ cat ~/.ssh/id_<type>.pub | ssh holu@<۱۰.۰.۰.۱> "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"لطفاً holuنام کاربری و <10.0.0.1>آدرس IP خود را جایگزین کنید. همچنین، <type>باید با نوع واقعی کلید SSH شما جایگزین شود تا با نام فایلی که قرار است دستگاه محلی کلید عمومی SSH را از آن کپی کند، مطابقت داشته باشد. در صورتی که از نام صحیح فایل مطمئن نیستید، میتوانید از دستور زیر ls ~/.sshبرای فهرست کردن تمام فایلهای ذخیره شده در دایرکتوری SSH استفاده کنید. یکی از آن فایلها باید به این شکل نامگذاری شود id_<type>.pub. >>بخشی از دستور بالا تضمین میکند که فایل اصلی رونویسی نخواهد شد. در عوض، کلید جدید در خط آزاد بعدی اضافه میشود. پس از اجرای دستور، کلید عمومی به طور خودکار از دستگاه محلی شما کپی شده و به authorized_keysفایل موجود در دستگاه راه دور شما الصاق میشود.
کلید SSH اکنون ذخیره شده است و دفعه بعد که به سرور خود متصل شوید، به طور خودکار استفاده خواهد شد.
گزینه ۳ #
برای اضافه کردن کلید SSH در یک دستگاه از راه دور، ابتدا باید کلید عمومی را از دستگاه محلی کپی کنید. برای انجام این کار، فایلی را که کلید عمومی در آن ذخیره شده است باز کنید. اگر در مورد نام فایل مطمئن نیستید، میتوانید از دستور زیر ls ~/.sshبرای لیست کردن تمام فایلهای موجود در دایرکتوری SSH استفاده کنید. catبرای باز کردن فایل از دستور زیر به همراه نام فایل استفاده کنید:
$ cat ~/.ssh/id_<type>.pubکل خروجی را کپی کنید، با شروع از نوع کلید ssh-<type>.
$ ssh-<type> AAA...fjdkl== holu@exampleسپس، برای اضافه کردن کلید به دستگاه راه دور متصل شوید. یک پنجره CLI دوم باز کنید و از دستور زیر استفاده کنید.
$ ssh holu@<۱۰.۰.۰.۱>حالا که متصل شدید، بررسی کنید که آیا دایرکتوری SSH وجود دارد یا خیر.
$ ls -l ~/.ssh/اگر دایرکتوری SSH وجود داشته باشد، تمام محتویات آن را فهرست میکند. اگر این کاربر دایرکتوری SSH نداشته باشد، خروجی شما باید چیزی شبیه به این باشد ls: cannot access '/home/new/.ssh/': No such file or directory. در این حالت، باید یک دایرکتوری SSH اضافه کنید.
- ایجاد یک دایرکتوری SSH
$ mkdir -p ~/.sshحالا دسترسیها را تغییر دهید:
$ chmod ۷۰۰ ~/.sshدر مرحله بعد میتوانید
authorized_keysفایل را در این دایرکتوری ایجاد کنید.cd ~/.sshبرای باز کردن دایرکتوری SSH و اجرای دستور زیر از دستور زیر استفاده کنید:$ touch authorized_keysحالا دسترسیها را تغییر دهید:
$ chmod ۶۰۰ ~/.ssh/authorized_keys
وقتی فایل را ایجاد کردید authorized_keys، میتوانید کلید عمومی را اضافه کنید. nanoبرای باز کردن authorized_keysفایل از دستور زیر استفاده کنید:
$ nano ~/.ssh/authorized_keysسپس، کلید عمومی را از دستگاه محلی خود اضافه کنید. میتوانید به اولین پنجره CLI خود برگردید تا آن را کپی کنید ( cat ~/.ssh/id_<type>.pub). فرمت فایل authorized_keysبه صورت یک کلید در هر خط است. این بدان معناست که باید هر پاراگرافی را از کلید عمومی خود حذف کنید تا به یک خط تبدیل شود. میتوانید کلیدهای عمومی بیشتری را در خطوط زیر اضافه کنید – دوباره، یک کلید در هر خط. پس از اتمام کار، میتوانید از CTRL+ Xبرای ذخیره فایل، Yتأیید و ENTERبستن فایل استفاده کنید.
کلید SSH اکنون ذخیره شده است و دفعه بعد که به سرور خود متصل شوید، به طور خودکار استفاده خواهد شد.
گزینه ۴ #
رویکردهای نشان داده شده در بالا به سادگی یک کلید SSH جدید به authorized_keysفایل کاربر راه دور اضافه میکنند. اگر مدتی است که از کاربر دیگری (u1) استفاده میکنید و دادههای زیادی در .sshدایرکتوری وجود دارد که میخواهید آنها را نگه دارید، میتوانید کل دایرکتوری را از کاربر دیگر خود (u1) به کاربر جدید خود (u2) کپی کنید .ssh. یک CLI باز کنید و به عنوان کاربر قدیمی (u1) به دستگاه راه دور خود متصل شوید.
$ ssh user@<۱۰.۰.۰.۱>لطفاً userنام کاربری (u1) و <10.0.0.1>آدرس IP خود را جایگزین کنید. در مرحله بعد، از دستور زیر برای اضافه کردن دایرکتوری SSH به کاربر جدید خود (u2) استفاده کنید:
# rsync --archive --chown=holu:holu ~/.ssh /home/holuلطفاً holuنام کاربری خود (u2) را جایگزین کنید. این دستور به طور خودکار مالک فایل را تغییر میدهد. لطفاً مطمئن شوید که با اسلش (/) خاتمه نمییابد~/.ssh .یا در غیر این صورت این دستور به درستی کار نخواهد کرد.~/.ssh/
مرحله ۵ – تست کلید SSH #
اکنون که کلید عمومی SSH به فایل کاربر اضافه شده است authorized_keys، میتوانید احراز هویت را با آن آزمایش کنید. برای بستن اتصال به دستگاه راه دور خود، از CTRLعلامت + در پنجره CLI دوم خود استفاده کنید. سپس دوباره به آن متصل شوید:D
$ ssh holu@<۱۰.۰.۰.۱>لطفاً holuنام کاربری و <10.0.0.1>آدرس IP خود را جایگزین کنید. اگر این اولین بار است که به سرور خود متصل میشوید، لطفاً به نکات مرحله ۳ توجه داشته باشید .
اگر کلید SSH شما دارای رمز عبور است، از شما خواسته میشود آن را وارد کنید. اکنون باید به سرور خود متصل شده باشید.
مرحله ۶ – اضافه کردن، تغییر دادن یا حذف کردن رمز عبور کلید SSH #
شما میتوانید عبارت عبور را به کلید خصوصی SSH خود در دستگاه محلی خود اضافه، تغییر و حذف کنید. لطفاً توجه داشته باشید که باید عبارت عبور فعلی خود را بدانید. اگر عبارت عبور خود را فراموش کردهاید، دیگر نمیتوانید از کلید SSH خود استفاده کنید. اگر عبارت عبور خود را فراموش کردهاید، میتوانید کلید SSH خود را همانطور که در مرحله بعد توضیح داده شده است حذف کنید و یک کلید جدید با دستور زیر ایجاد کنید ssh-keygen. اگر عبارت عبور خود را به خاطر دارید، میتوانید از دستور زیر برای ایجاد تغییرات در آن استفاده کنید:
$ ssh-keygen -pخروجی:
Enter file in which the key is (/root/.ssh/id_rsa):مسیر فایل کلید SSH خود را وارد کنید. اگر کلید خود را در مکان پیشفرض ذخیره کردهاید، میتوانید مسیر را در خروجی کپی کرده /root/.ssh/id_<type>و rsaنوع کلید خود را جایگزین کنید.
اگر کلید SSH شما از قبل دارای رمز عبور است، از شما خواسته میشود که آن را وارد کنید. در مرحله بعد، یک رمز عبور جدید وارد کنید و برای تأیید آن را تکرار کنید. اگر میخواهید رمز عبور را حذف کنید، میتوانید با فشار دادن از این مرحله صرف نظر کنید ENTER.
مرحله ۷ – حذف کلید SSH #
اگر استفاده از یک کلید SSH خاص را متوقف کردید، شاید بهتر باشد نه تنها فایلهای مربوطه را در دستگاه محلی خود حذف کنید، بلکه کلیدهای عمومی را از authorized_keysفایلهای دستگاههای راه دور نیز حذف کنید.
- میتوانید این کار را به صورت دستی انجام دهید. به کاربری که کلید عمومی شما را در
authorized_keysفایل دارد متصل شوید. سپس، فایل را باز کنید:$ nano ~/.ssh/authorized_keysکلید عمومی خود را حذف کنید اما هیچ کلید دیگری را حذف نکنید. پس از ذخیره فایل، دیگر نمیتوانید از طریق این کلید SSH به سرور متصل شوید. بنابراین لطفاً مطمئن شوید که کلید جدید یا رمز عبور شما به درستی کار میکند. پس از اتمام کار، میتوانید از
CTRL+Xبرای ذخیره فایل،Yتأیید وENTERبستن فایل استفاده کنید.
rmبرای حذف فایلها به جفت کلید خود از دستگاه محلی خود استفاده کنید :
rm id_<type>
rm id_<type>.pubنتیجهگیری #
در مراحل قبلی یاد گرفتید که چگونه یک کلید SSH تولید کنید، یک کلید SSH به سرور اضافه کنید، عبارت عبور کلید SSH را اضافه، تغییر یا حذف کنید و کلید SSH را حذف کنید.