آموزش ایجاد کلیدهای SSH با PuTTY در ویندوز

کلاینت PuTTY SSH برای ویندوز از فرمت کلید مشابه با کلاینت OpenSSH استفاده نمی‌کند. اگر می‌خواهید از PuTTY استفاده کنید، باید یک کلید عمومی و خصوصی جدید SSH با استفاده از ابزار PuTTYgen ایجاد یا یک کلید خصوصی OpenSSH موجود را تبدیل کنید. برای ایجاد و استفاده از کلیدهای SSH در ویندوز، باید PuTTY، ابزاری که برای اتصال به سرورهای ریموت از طریق SSH استفاده می‌شود و PuTTYgen، ابزاری که برای ایجاد کلیدهای SSH استفاده می‌شود، دانلود و نصب نمائید.


در وب‌سایت PuTTY، فایل .msi را در بخش Package files در بالای صفحه، در زیر MSI (Installer ویندوز ) دانلود کنید. سپس، با دوبار کلیک کردن روی آن و با استفاده از ویزارد نصب، آن را بر روی کامپیوتر خود نصب کنید.

پس از نصب برنامه‌ها، برنامه PuTTYgen را از طریق منوی استارت یا با زدن کلید Windows و تایپ puttygen اجرا کنید. برنامه تولید کلید شبیه به این است:

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


در صورت تمایل می‌توانید Parameters  پایین را سفارشی کنید، اما مقادیر پیش‌فرض در بیشتر موقعیت‌ها مناسب هستند. با این حال، الزامات رمزگذاری جدید فدورا 33، الگوریتم پیش‌فرض RSA را نمی‌پذیرد، بنابراین هنگام ایجاد کلید برای استفاده با فدورا 33، ECDSA یا الگوریتم پشتیبانی‌شده دیگری را انتخاب کنید.

وقتی آماده شدید، روی دکمه Generate در سمت راست کلیک کنید.

ممکن است از شما خواسته شود با حرکت دادن ماوس بر روی ناحیه خالی مقداری تصادفی ایجاد کنید. این تصادفی بودن، که به عنوان entropy شناخته می‌شود، برای ایجاد کلیدها به صورت ایمن استفاده می‌گردد تا افراد دیگر نتوانند آنها را بازتولید کنند.

ایجاد و Generate کلید تصادفی در putty

هنگامی که کلید تولید شد، کلید عمومی (public key) را می‌بینید که در یک تکست‌باکس نمایش داده می شود. اگر قصد دارید آن را به سرورهای خود اضافه کنید، باید با دقت در قسمت متن، اسکرول کنید تا کل کلید را در کلیپ‌بورد کپی کنید.
در مرحله بعد، از شما خواسته می‌شود که یک رمز عبور (passphrase) برای کلید SSH خود وارد کنید. این امر با جلوگیری از استفاده شخصی که به کلید خصوصی (private key) شما دسترسی پیدا می‌کند، بدون دانستن رمز عبور، امنیت را بهبود می بخشد. هر بار که از این کلید استفاده می‌کنید باید رمز عبور خود را ارائه کنید (مگر اینکه از نرم افزار SSH agent  استفاده کنید که کلید رمزگشایی شده را ذخیره می‌کند).

ذخیره کلید خصوصی putty

وقتی کارتان تمام شد، روی دکمه Save private key کلیک و یک مکان امن را برای نگهداری آن انتخاب کنید. می‌توانید کلید خود را به نام دلخواه، نامگذاری کنید و پسوند ppk. به‌طور خودکار اضافه می‌شود.

اگر رمز عبور وارد نکرده‌اید، باید تایید کنید که می‌خواهید کلید را بدون رمز ذخیره نمائید. ما توصیه می‌کنیم از یک passphrase استفاده کنید، اما برای دور زدن این درخواست هم می‌توانید ENTER را فشار دهید.

کار با فرمت کلید عمومی PuTTY

می‌توانید روی Save public key نیز کلیک کنید، اما توجه داشته باشید: فرمتی که PuTTYGen هنگام ذخیره کلید عمومی استفاده می‌کند با فایل‌های OpenSSH authorized_keys مورد استفاده برای احراز هویت کلید SSH در سرورهای لینوکس ناسازگار است.
اگر بعد از ذخیره کلید خصوصی نیاز دارید که کلید عمومی را با فرمت مناسب ببینید:

  1. PuTTYgen را باز کنید.
  2. در کنار Load an existing private key file، روی دکمه Load  کلیک کنید.
  3. به کلید خصوصی در فایل سیستم خود بروید و آن را انتخاب کنید.
  4. روی Open کلیک کنید.

کلید عمومی دوباره در فرمت مناسب نمایش داده می‌شود.


در سرور لینوکس، موارد زیر را انجام دهید:

از طریق یک جلسه استاندارد SSH/PuTTY محافظت شده با رمز عبور به سرور لینوکس ریموت متصل و وارد شوید.
از دستور زیر برای ایجاد دایرکتوری به نام ssh~/. استفاده کنید.

$ mkdir ~/.ssh


دستور زیر را وارد کنید تا به کاربران مجوز خواندن، نوشتن و اجرا دهد.


$ chmod 700 ~/.ssh

از دستور زیر برای ایجاد یک فایل متنی خالی با نام autorized_keys استفاده کنید.


$ nano ~/.ssh/authorized_keys

محتوای Public key for pasting into OpenSSH authorized_keys file را در فایل متنی جای‌گذاری کنید. تایید کنید که کلید را پیست کرده‌اید. فایل را ذخیره کرده و ببندید.
دستور زیر را وارد کنید. این تنظیم مجوز خواندن و نوشتن در فایل autorized_keys را در اختیار کاربر قرار می دهد.


$ chmod 600 ~/.ssh/authorized_keys

برای بستن اتصال SSH عبارت exit را تایپ کنید.

کلاینت PuTTY را پیکربندی کنید

از برنامه اصلی PuTTY برای پیکربندی کلاینت PuTTY برای استفاده از احراز هویت مبتنی بر کلید استفاده کنید.

  1.  PuTTY را اجرا کنید اما به سیستم ریموت متصل نشوید.
  2.  در پنجره Category مسیر Connection>Data را مرور کنید.
  3. نام کاربری Auto-login را روی نام کاربری SSH ریموت تنظیم کنید. این کاربری است که فایل ssh/authorized_keys~/. را در سیستم لینوکس ریموت برای او ایجاد کردید.
  4.  به Connection>SSH>Auth مراجعه کنید. Browse را انتخاب کنید. کلید خصوصی ذخیره شده ایجاد شده با برنامه PuTTYgen را پیدا کنید.
سرور مجازی لینوکس یک ماشین مجازی کامل است که امکان دسترسی SSH در آن فراهم است.
خرید سرور مجازی لینوکس در پنج موقعیت جغرافیایی ایران، ترکیه، هلند، آلمان و آمریکا با قابلیت تحویل آنی در پارسدو فراهم است.

احراز هویت مبتنی بر کلید را آزمایش کنید

اکنون برای آزمایش اتصال آماده هستید. انتظار داشته باشید که اتصال بدون چالش رمز عبور برقرار شود.
در بالای پنجره Category، Session را انتخاب کنید تا به پنجره اصلی اتصال بازگردید. در کادر  Host Name (or IP address)، نام میزبان مقصد یا آدرس IP را وارد کنید.
برای تست جلسه، Open را انتخاب کنید. اگر احراز هویت مبتنی بر کلید به درستی پیکربندی شده باشد، پیامی مبنی بر Authenticating with public key در پنجره اتصال SSH ظاهر می‌شود.
شما با موفقیت PuTTY را برای استفاده از احراز هویت مبتنی بر کلید پیکربندی کرده اید.
همانطور که قبلا گفتیم، کلید خصوصی را می‌توان با یک رمز عبور محافظت کرد که هر بار که اتصال برقرار می‌شود باید وارد شود.

سایر تنظیمات کلیدی احراز هویت برای SSH و PuTTY شامل موارد زیر است:

  • ویرایش فایل پیکربندی sshd در سیستم لینوکس ریموت را در نظر بگیرید تا فقط احراز هویت مبتنی بر کلید را بپذیرید و احراز هویت مبتنی بر رمز عبور را رد کنید.
  • اجازه ورود root از طریق SSH را ندهید.
  • یک پورت غیر استاندارد را پیکربندی نموده و احراز هویت root را از طریق SSH مسدود کنید.