ایجاد یک اتصال SSH (Secure Shell) برای ورود به سرور و مدیریت موثر یک سرور راه دور ضروری است. کلیدهای رمزگذاری شده یا به عبارتی (Encrypted keys)مجموعه ای از مجوزهای دسترسی هستند که برای ایجاد یک اتصال secure استفاده می شوند که در این مقاله به شما توضیح میدهم که چگونه ssh key را در اوبونتو تولید کنید. ما همچنین تنظیم احراز هویت مبتنی بر ssh key را برای اتصال به سرور بدون نیاز به رمز عبور پوشش خواهیم داد.
توضیحات
برای ایجاد ssh key نیاز هست موادر زیر رو با هم طی کنیم:
- یک سرور با سیستم عامل ابونتو داشته باشید
- ایجاد یک یوزر با دسترسی sudo
- دسترسی ssh یا ترمینال
ایجاد ssh key در ubuntu
قدم اول:pair را در ssh key ایجاد کنید
در سیستم کلاینت خود -سیستمی که برای اتصال به سرور استفاده می کنید- باید یک pair یا جفت ssh key ایجاد کنید
برای ایجاد pair در کد SSH key ، دستورات را وارد کنید:
mkdir –p $HOME/.ssh
chmod 0700 $HOME/.ssh
ssh-keygen
این یک دایرکتوری مخفی برای ذخیره کلیدهای SSH شما و تغییر مجوزهای آن دایرکتوری ایجاد می کند. دستور ssh-keygen یک جفت کلید 4096 بیتی RSA ایجاد میکند.
بهتره برای امنیت بیشتر از RSA4096 استفاده کنید:
ssh –keygen –t rsa 4096
اگر قبلاً یک key pair ایجاد کردهاید، از شما خواسته میشود که آنها را بازنویسی کنید و آن کلیدهای قدیمی دیگر کار نخواهند کرد.و سیستم از شما می خواهد که password به عنوان یک لایه امنیتی اضافی ایجاد کنید. یک password به یاد ماندنی وارد کنید و Enter را فشار دهید
قدم دوم:public key را در سرور ابونتو خود کپی کنید
در ابتدا آدرس IP سرور اوبونتو را که می خواهید به آن متصل شوید، دریافت کنید.
کامند زیر رو در محیط ssh اجرا کنید
ip a
در سیستم کلاینت از دستور ssh-copy-id
برای کپی کردن اطلاعات هویتی در سرور اوبونتو استفاده کنید
<ssh-copy-id username@<server_ip
server_IP را با آدرس IP واقعی سرور خود جایگزین کنید و اگر این اولین باری است که به سرور متصل می شوید، ممکن است پیامی مبنی بر اینکه صحت هاست ثابت نمی شود را مشاهده کنید:
The authenticity of host '192.168.0.15 (192.168.0.15)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
?Are you sure you want to continue connecting (yes/no)
yes رو تایپ کنید و سپس enter بزنید.
در این سیستم، کلاینت شما را برای کلید id_rsa.pub که قبلا تولید شده بود بررسی می کند.سپس از شما می خواهد که رمز عبور حساب کاربری سرور را وارد کنید. آن را تایپ کنید (سیستم رمز عبور را نمایش نمی دهد) و Enter را فشار دهید
سیستم محتویات ~/.ssh/id_rsa.pub را از سیستم کلاینت در دایرکتوری ~/.ssh/authorized_keys سیستم سرور کپی می کند.
سیستم شما باید عبارت زیر را نمایش دهد:
Number of key(s) added: 1
روش جایگزین برای کپی دستی ssh key
اگر سیستم شما دستور ssh-copy-id را ندارد، می توانید کلید را به صورت دستی روی SSH کپی کنید و از دستور زیر استفاده بفرمایید.
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
قدم سوم:Log in to the Remote Server
برای ورود به سرور، دستور را وارد کنید
ssh username@server_IP
سیستم نباید رمز عبور بخواهد زیرا در حال مذاکره با یک اتصال امن با استفاده ازssh key است. اگر از یک password امنیتی استفاده کرده اید، از شما خواسته می شود که آن را وارد کنید. پس از انجام این کار، وارد سیستم می شوید
نکته:اگر این اولین باری است که وارد سرور می شوید، ممکن است پیامی مشابه پیام قسمت دوم مشاهده کنید. از شما می پرسد که آیا مطمئن هستید که می خواهید وصل شوید - Yes را تایپ کرده و Enter را فشار دهید.
قدم چهارم:Disable Password Authentication
فایل sshd_config را edit کنید:
sudo nano /etc/ssh/sshd_config
فایل را جستجو کنید و گزینه PasswordAuthentication را پیدا کنید.
آن را ویرایش کنید و مقدار آن را به no تغییر دهید
PasswordAuthentication no
فایل را ذخیره کرده و خارج شوید، سپس سرویس SSH را مجددا راه اندازی کنید
sudo systemctl restart ssh
قبل از اینکه session را ببندید اطمینان حاصل بفرمایید که ssh هنوز کار میکند:
ssh username@server_IP
اگر همه چیز درست شد، می توانید به آن خاتمه دهید و به طور عادی کار را از سر بگیرید