نحوه ساخت کلیدهای SSH برای ارتباط SSH
کلیدهای SSH این امکان را فراهم می کند که بدون استفاده از رمز عبور بتوانید از طریق SSH به یک ماشین متصل شوید. قبل از این که کلید SSH خود را ایجاد کنید، مطمئن شوید که پوشه ssh. /~ وجود دارد. در صورتی که این پوشه وجود نداشت با استفاده از دستور زیر این پوشه را بسازید.
1 |
mkdir ~/.ssh |
حالا با استفاده از دستور زیر کلید عمومی و خصوصی SSH را تولید کنید.
1 |
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" |
t- مشخص کننده نحوه رمزکذاری است، b- تعداد بیت ها را مشخص می کند. C- به منظور شناسایی ایمیل استفاده می شود. سپس می توانید از سه عبارت بعدی را که مشاهده می کنید با فشردن دکمه Enter به صورت پیش فرض عبور کنید.
1 |
Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter] |
1 2 |
Enter passphrase (empty for no passphrase): <em>[Type a passphrase]</em> [Type passphrase again]</pre |
1 2 3 4 |
Your identification has been saved in /Users/you/.ssh/id_rsa. Your public key has been saved in /Users/you/.ssh/id_rsa.pub. The key fingerprint is: 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com |
حال با استفاه از دستور فوق می توانید دو فایل جدید زیر را مشاهده کنید.
1 2 |
cd ~/.ssh ls |
استفاده از کلیدهای SSH
حال کلیدهای تولید شده باید روی ماشینی که می خواهید از طریق SSH به آن متصل شوید تایید شوند.
1 |
ssh root@target_machine_ip |
رمز عبور را وارد کنید تا ماشین بتواند کلید SSH شما را بشناسد. ابتدا باید مطمئن شوید که ماشین موردنظر دارای پوشه ssh. /~ است. با استفاده از دستور touch فایل جدید ~/.ssh/authorized_keys
را بسازید.
1 2 3 |
mkdir ~/.ssh touch ~/.ssh/authorized_keys exit |
حال با استفاده از SSH قصد داریم فایل id_rsa.pub را به ماشین مقصد ارسال کنیم. پس باید id_rsa.pub خود را که در واقع کلید عمومی ماست به ssh/authorized_keys./~ اضافه کنیم.
1 2 |
cd ~/.ssh ssh root@target_machine_ip 'cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub |
ما در واقع محتوای ssh/id_rsa.pub./~ را به ssh/authorized_keys./~ الحاق می کنیم. اکنون ماشین ما می تواند کلید خصوصی id_rsa.pub را بشناسد. با استفاده از دستور زیر می توانیم تست کنیم که کلیدهای SSH ما کار می کند یا خیر. مشاهده خواهید کرد که بعد از اجرای دستور رمز عبوری از شما خواسته نمی شود.
1 |
ssh root@target_machine_ip |
پاک کردن رمز عبور کاربر و استفاده از کلیدهای SSH
برخی از افراد مایلند که فقط از کلیدهای SSH استفاده کنند زیرا تنها شما که دارای کلید خصوصی هستید می توانید به ماشینی که دارای ssh/authorized_keys./~ و کلید عمومی شماست دسترسی داشته باشید. پس می توانید پسوردها را به طور کامل پاک کنید تا فقط کلیدهای خصوصی id_rsa مربوط به کلیدهای عمومی id_rsa.pub اضافه شده به ssh/authorized_keys./ می توانند به ماشین دسترسی داشته باشند.
به منظور پاک کردن رمز عبور یم کاربر root از دستور زیر استفاده کنید:
1 |
passwd -d root |
حال که رمز عبور root پاک شد تنها استفاده از کلیدهای SSH تنها راهی است که با استفاده از آن می توانید از طریق SSH به ماشین مورد نظر متصل شوید. همچنین می توانید بررسی کنید که چه کسی به به ماشین لاگین کرده است و بدین ترتیب لاگین های مشکوک را پیدا کنید. برای این کار از دستور زیر استفاده کنید.
1 |
who |
همانطور که در نتیجه دیتور فوق مشاهده می کنید دو کاربر root لاگین کرده اند.
1 2 |
root tty1 2015-12-02 17:52 root pts/0 2015-12-16 04:43 (155.41.49.252) |
و در نهایت شما می توانید با استفاده از دستور زیر کاربر لاگین کرده را kill کنید.
1 |
pkill -KILL -u root |