آشنایی با کلیدهای SSH و نحوه ساخت آنها
کلیدهای SSH
از کلیدهای SSH جهت ایجاد یک اتصال امن به یک کامپیوتر راه دور یا سرور استفاده میشود. میتوان به جای لاگین به سیستم از طریق یک پسورد خاص از کلیدهای SSH استفاده کرد. کلیدهای SSH به صورت جفتی هستند، یک کلید خصوصی (private) و یک کلید عمومی (public). کلید عمومی میتواند به اشتراک گذاشته شوند، بدیهی است که کلید خصوصی هرگز نباید به اشتراک گذاشته شود.
مراحل تنظیم کلیدهای SSH برای انجام عملیات احراز هویت بسیار ساده است:
1. یک جفت کلید SSH موجود را پیدا کنید یا یک کلید جدید ایجاد کنید
2. کلید عمومی آن را به کامپیوتر راه دور اضافه کنید
3. به کامپیوتر راه دور متصل شوید.
روشهای مختلفی که با استفاده از آنها میتوانید مراحل ایجاد و تنظیم کلیدهای SSH را به درستی انجام دهید را مورد بررسی قرار می دهیم.
در تمامی دستورات زیر از نام کاربری barry
و آی پی آدرس 123.123.123.123
استفاده شده است. طبیعتا این موارد میتوانند با نام کاربری و آدرس IP یا نام هاست انتخابی شما جایگزین شوند.
آشنایی با کلیدهای SSH و نحوه ساخت آنها
یافتن یک کلید SSH موجود
در حالت کلی، کلیدها در پوشه .ssh
در دایرکتوری اصلی شما ذخیره میشوند (در سیستم محلی). مسیر ما در اینجا به صورت /home/barry/.ssh
است.
اگر این پوشه شامل فایلهای id_rsa و id_rsa.pub
باشد، شما یک جفت کلید SSH موجود را دارید. id_rsa
کلید خصوصی و id_rsa.pub
کلید عمومی است.
ایجاد یک کلید SSH جدید
در صورتی که شما از قبل یک کلید SSH نداشته باشید یا اگر بخواهید آن را بازنویسی کنید، میتوانید دستور زیر را برای این منظور اجرا کنید:
$ ssh-keygen -t rsa
این دستور از شما چند سوال میپرسد که باید به آنها پاسخ دهید، سوالاتی مانند اینکه میخواهید کلید SSH را در کجا ذخیره کنید؟ اگر جواب این سوال را نمیدانید، میتوانید از مکان پیشفرض ارائه شده استفاده کنید. از چه پسورد یا رمز عبوری میخواهید استفاده کنید؟ اگر شما نمیخواهید از یک رمز عبور استفاده کنید، میتوانید این قسمت را خالی بگذارید.
آشنایی با کلیدهای SSH و نحوه ساخت آنها
اضافه کردن یک کلید SSH به یک کامپیوتر راه دور
فایل /home//.ssh/authorized_keys
شامل تمام کلیدهای عمومی است که میتواند برای لاگین به عنوان کاربر استفاده شود. برای تأیید احراز هویت خودمان، باید کلید عمومی خود را به authorized_keys
کاربر در کامپیوتر راه دور کپی کنیم.
این کار را میتوان به سه روش انجام داد:
۱. کلید عمومی را به صورت دستی به authorized keys اضافه کنید
محتویات id_rsa.pub
کلید خصوصی خود را دریافت کنید. این محتویات باید به صورت زیر باشند:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTSqkjrM7jGLSOr6iRlJbtsLo9hbNkIWKuwqYTYxBOrhlkNranC6GZeuW0xXiQGHoa43PuU/WXrtD9DH7JjcfGiAF+2msdZNxw52qXQJCZ4qDIokzRK499ZJka9ug35qRagCGJbrXOV52b29mCMhcUyxGg5YwssrsGyW36Jx1+hhJsTWoaGBwh3CwDKRPMU/CVAe3NPjd1O/w8o3faenLepir2PgXSx5A5igcDJExfYnmReeGVKuUhfKtc0OPx6D8zyGbn5eGVO07DXhzPkUhk6OUcYXdfkpozMUOAOFC9zYbXHR4fOuQ3B9mjpDbUQZkeC9mhNMvYBRcsYZ1iQdqb username@hostname
اکنون به کامپیوتر راه دور لاگین کنید و فایل /home/barry/.ssh/authorized_keys
را ویرایش کنید. محتوای کلید عمومی خود را به انتهای فایل اضافه کنید و آن را ذخیره کنید.
۲. با استفاده از bash یک کلید عمومی را به autorized_keys اضافه کنید
میتوان به قسمت بالا از طریق اجرای دستور زیر نیز دسترسی داشت:
$ cat ~/.ssh/id_rsa.pub | ssh barry@123.123.123.123 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys"
این دستور تمام مواردی را که قبلا انجام دادیم را به صورت خودکار انجام میدهد:
ابتدا محتویات کلید عمومی ( cat ~/.ssh/id_rsa.pub
) را دریافت میکند
سپس آن را به کامپیوتر راه دور وصل میکند ( ssh barry@123.123.123.123
)
پس از آنکه اتصال انجام شد، بقیه دستورات را اجرا میکند تا قبل از اضافه کردن محتویات کلید عمومی به authorized keys، اطمینان حاصل کند که دایرکتوری .ssh
وجود داشته و قابل خواندن است. ( "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys"
)
3. با استفاده از ssh-copy-id
یک کلید عمومی را به authorized_keys اضافه کنید
ابزار ssh-copy-id
فرایند انجام این کار را سادهتر میکند اما در تمام دستگاهها نصب نیست. برای نصب آن فقط کافی است که دستور زیر را اجرا کنید:
ssh-copy-id -i ~/.ssh/id_rsa.pub barry@123.123.123.123
اتصال به کامپیوتر راه دور
اگر تمام موارد به درستی تنظیم شده باشد، اکنون میتوانید به صورت زیر متصل شوید:
$ ssh barry@123.123.123.123
اگر شما کلید خصوصی خود را در مکان دیگری ذخیره کردهاید، میتوانید به صورت زیر عمل کنید:
$ ssh -i /path/to/id_rsa barry@123.123.123.123