نحوه ساخت کلیدهای SSH برای ارتباط SSH
کلیدهای SSH این امکان را فراهم می کند که بدون استفاده از رمز عبور بتوانید از طریق SSH به یک ماشین متصل شوید. قبل از این که کلید SSH خود را ایجاد کنید، مطمئن شوید که پوشه ssh. /~ وجود دارد. در صورتی که این پوشه وجود نداشت با استفاده از دستور زیر این پوشه را بسازید.
mkdir ~/.ssh
حالا با استفاده از دستور زیر کلید عمومی و خصوصی SSH را تولید کنید.
ssh-keygen -t rsa -b 4096 -C "[email protected]"
t- مشخص کننده نحوه رمزکذاری است، b- تعداد بیت ها را مشخص می کند. C- به منظور شناسایی ایمیل استفاده می شود. سپس می توانید از سه عبارت بعدی را که مشاهده می کنید با فشردن دکمه Enter به صورت پیش فرض عبور کنید.
Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
Enter passphrase (empty for no passphrase): [Type a passphrase] [Type passphrase again]</pre
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 [email protected]
حال با استفاه از دستور فوق می توانید دو فایل جدید زیر را مشاهده کنید.
cd ~/.ssh ls
استفاده از کلیدهای SSH
حال کلیدهای تولید شده باید روی ماشینی که می خواهید از طریق SSH به آن متصل شوید تایید شوند.
ssh root@target_machine_ip
رمز عبور را وارد کنید تا ماشین بتواند کلید SSH شما را بشناسد. ابتدا باید مطمئن شوید که ماشین موردنظر دارای پوشه ssh. /~ است. با استفاده از دستور touch فایل جدید ~/.ssh/authorized_keys را بسازید.
mkdir ~/.ssh touch ~/.ssh/authorized_keys exit
حال با استفاده از SSH قصد داریم فایل id_rsa.pub را به ماشین مقصد ارسال کنیم. پس باید id_rsa.pub خود را که در واقع کلید عمومی ماست به ssh/authorized_keys./~ اضافه کنیم.
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 ما کار می کند یا خیر. مشاهده خواهید کرد که بعد از اجرای دستور رمز عبوری از شما خواسته نمی شود.
ssh root@target_machine_ip
پاک کردن رمز عبور کاربر و استفاده از کلیدهای SSH
برخی از افراد مایلند که فقط از کلیدهای SSH استفاده کنند زیرا تنها شما که دارای کلید خصوصی هستید می توانید به ماشینی که دارای ssh/authorized_keys./~ و کلید عمومی شماست دسترسی داشته باشید. پس می توانید پسوردها را به طور کامل پاک کنید تا فقط کلیدهای خصوصی id_rsa مربوط به کلیدهای عمومی id_rsa.pub اضافه شده به ssh/authorized_keys./ می توانند به ماشین دسترسی داشته باشند.
به منظور پاک کردن رمز عبور یم کاربر root از دستور زیر استفاده کنید:
passwd -d root
حال که رمز عبور root پاک شد تنها استفاده از کلیدهای SSH تنها راهی است که با استفاده از آن می توانید از طریق SSH به ماشین مورد نظر متصل شوید. همچنین می توانید بررسی کنید که چه کسی به به ماشین لاگین کرده است و بدین ترتیب لاگین های مشکوک را پیدا کنید. برای این کار از دستور زیر استفاده کنید.
who
همانطور که در نتیجه دیتور فوق مشاهده می کنید دو کاربر root لاگین کرده اند.
root tty1 2015-12-02 17:52 root pts/0 2015-12-16 04:43 (155.41.49.252)
و در نهایت شما می توانید با استفاده از دستور زیر کاربر لاگین کرده را kill کنید.
pkill -KILL -u root