Secure Shell یا (SSH) یک پروتکل شبکه برای ایجاد اتصال ایمن بین مشتری و سرور است. با استفاده از SSH می توانید دستوراتی را در ماشینهای ریموت اجرا کنید ، تونل ها ، پورت های رو به جلو و موارد دیگر را ایجاد کنید. SSH از مکانیسم های مختلف تأیید اعتبار پشتیبانی می کند. دو مورد متداول رمز عبور و تأیید اعتبار مبتنی بر کلید عمومی است. احراز هویت استفاده از کلید عمومی مبتنی بر استفاده از امضاهای دیجیتالی است و نسبت به تأیید رمزعبور سنتی ، ایمن تر و راحت تر است. در این مقاله نحوه تولید کلیدهای SSH در سیستم های اوبونتو ۲۰٫۰۴ توضیح داده شده است. ما همچنین به شما روش تنظیم احراز هویت مبتنی بر کلید SSH و اتصال به سرورهای ریموت لینوکس را بدون وارد کردن گذرواژه نشان خواهیم داد.
در ادامه با ما در شتابان هاست همراه باشید.
این امکان وجود دارد که شما در حال حاضر یک جفت کلید SSH در دستگاه مشتری Ubuntu خود داشته باشید. اگر یک جفت کلید جدید تولید کنید ، یک مورد قدیمی رونویسی می شود. برای بررسی وجود فایلهای کلیدی ، دستور ls زیر را اجرا کنید:
ls -l ~/.ssh/id_*.pub
اگر دستور چیزی مانند No such file or directory را برگرداند ، یا no matches found ، به این معنی است که کاربر دارای کلیدهای SSH نیست ، و شما می توانید مرحله بعدی را انجام داده و یک جفت کلید SSH تولید کنید. در غیر این صورت ، اگر یک جفت کلید SSH دارید ، می توانید از کلیدهای موجود استفاده کرده و از کلیدهای قدیمی بکاپ تهیه کرده و یک جفت جدید تولید کنید.
برای تولید یک جفت کلید جدید ۴۰۹۶ بیتی SSH جفت شده با آدرس ایمیل خود دستور زیر ار اجرا کنید:
ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"
از شما خواسته می شود نام فایل را مشخص کنید:
Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):
مکان پیش فرض و نام فایل باید برای اکثر کاربران خوب باشد. Enter را فشار دهید تا بپذیرید و ادامه دهید.
در مرحله بعد ، از شما خواسته می شود یک عبارت عبور ایمن را تایپ کنید. یک عبارت عبور یک لایه امنیتی اضافی را اضافه می کند. اگر یک عبارت را تنظیم کنید ، هر بار که از کلید برای ورود به سیستم ریموت استفاده می کنید ، از شما خواسته می شود که آن را وارد کنید.
اگر نمی خواهید یک عبارت را تنظیم کنید ، Enter را فشار دهید.
خروجی:
Enter passphrase (empty for no passphrase):
کل تعامل شبیه به عکس زیر است:
برای تأیید ایجاد جفت کلید جدید SSH ، دستور زیر را تایپ کنید:
ls ~/.ssh/id_*
خروجی:
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub
شما با موفقیت یک جفت کلید SSH را در دستگاه مشتری Ubuntu خود ایجاد کردید.
اکنون که یک جفت کلید SSH دارید ، مرحله بعدی کپی کردن کلید عمومی روی سرور ریموت مورد نظر برای مدیریت است.
ساده ترین و توصیه شده ترین روش برای کپی کردن کلید عمومی روی سرور ، استفاده از ابزار ssh-copy-id است. در دستگاه لوکال خود دستور زیر را تایپ کنید:
ssh-copy-id remote_username@server_ip_address
از شما خواسته می شود رمزعبور کاربر ریموت را وارد کنید:
remote_username@server_ip_address's password:
پس از تأیید اعتبار کاربر ، کلید عمومی ~/.ssh/id_rsa.pub به پرونده ریموت کاربر ~/.ssh/authorized_keys وصل شده و اتصال بسته خواهد شد.
خروجی:
Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'username@server_ip_address'" and check to make sure that only the key(s) you wanted were added.
اگر به دلایلی ابزار ssh-copy-id در رایانه لوکال شما موجود نیست ، برای کپی کردن کلید عمومی از دستور زیر استفاده کنید:
cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
پس از انجام مراحل بالا ، شما باید بدون نیاز به رمز عبور ، به سرور ریموت وارد شوید.
برای آزمایش آن ، سعی کنید از طریق SSH به سرور خود وارد شوید:
ssh remote_username@server_ip_address
اگر یک عبارت عبور برای کلید خصوصی تنظیم نکرده اید ، بلافاصله وارد سیستم می شوید. در غیر اینصورت از شما خواسته می شود که عبارت عبور را وارد کنید.
غیرفعال کردن احراز هویت رمز عبور ، یک لایه امنیتی بیشتر به سرور شما اضافه می کند.
قبل از غیرفعال کردن احراز هویت رمزعبور SSH ، مطمئن شوید که می توانید بدون رمز ورود به سرور خود وارد شوید و کاربری که با آن وارد شده اید دارای امتیازات سودو است.
وارد سرور ریموت خود شوید:
ssh sudo_user@server_ip_address
پرونده پیکربندی SSH را با ویرایشگر متن خود باز کنید:
sudo nano /etc/ssh/sshd_config
دستورالعمل های زیر را جستجو کنید و به شرح زیر اصلاح کنید:
PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
پس از اتمام ، پرونده را ذخیره کرده و سرویس SSH را با تایپ مجدد راه اندازی مجدد کنید:
sudo systemctl restart ssh
در این مرحله ، تأیید هویت مبتنی بر رمز عبور غیرفعال است.
ما به شما نشان داده ایم که چگونه یک جفت کلید جدید SSH تولید کنید و احراز هویت مبتنی بر کلید SSH را تنظیم کنید. برای مدیریت چندین سرور ریموت می توانید از همان کلید استفاده کنید. همچنین آموخته اید که چگونه رمز عبور SSH را غیرفعال کنید و یک لایه امنیتی بیشتر به سرور خود اضافه کنید.
به طور پیش فرض ، SSH به پورت ۲۲ منصل است. تغییر پورت پیش فرض SSH خطر حملات خودکار را کاهش می دهد. برای ساده کردن گردش کار ، از پرونده کانفیگ SSH استفاده کنید تا تمام اتصالات SSH خود را تعریف کنید. می توانید مقاله ما در این زمینه را با موضوع تغییر پورت SSH مطالعه کنید.
اگر هر گونه سؤال یا بازخورد دارید ، می توانید نظر خود را اعلام کنید.
میدوارم این مقاله براتون مفید بوده باشه.
ما رو تو شتابان هاست دنبال کنید. 🙂