ایجاد اتصال SSH بدون Password

در این پست نحوه پیکربندی و ایجاد اتصال SSH بدون Password  یا اصطلاحا Password-Less Login را بین دو سرور مرور خواهیم کرد.  در این روش اتصال از طریق SSH Key انجام خواهد گرفت. از مزیت های این روش که اغلب بین سرور های Trust  ایجاد می شود، می توان به راحتی تبادل فایل، پشتیبان گیری به صورت ریموت،  مدیریت سرور مقصد به صورت ریموت و …  اشاره کرد.

در محیطی این آموزش سرور مبدا و مقصد با مشخصات زیر می باشند.

سرور مبدا یا سروری که قرار است اتصال بدون Password  از طریق آن انجام شود با آدرس 172.17.105.29

سرور مقصد که قرار است اتصال بدون Password  به آن انجام پذیرد با آدرس 172.17.105.28

قدم اول :

 

اتصال به سرور مبدا و ایجاد یک جفت کلید عمومی از طریق دستور زیر، در اینجا من از نام کاربری root  بین دو سرور استفاده میکنم و در صورت تمایل میتوانید از نام های کاربری دیگری غیر از root  هم استفاده کنید.

[root@hamed-lab ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
0e:74:10:1c:b5:08:59:fb:e0:eb:7b:8a:d6:dd:34:6b root@hamed-lab
The key's randomart image is:
+--[ RSA 2048]----+
|    .+=+.        |
|    ...+ .       |
|      = o        |
|     o +         |
|      o S        |
|       +  o      |
|     ....o o     |
|    .o. o E      |
|   .. ++ .       |
+-----------------+

قدم دوم:

ایجاد دایکتوری ای با نام .ssh در Home Directory  کاربر، در سرور مقصد که در اینجا ما این عمل را از طریق SSH و از سرور مبدا انجام می دهیم.

[root@hamed-lab ~]# ssh root@172.17.105.28 mkdir -p .ssh
root@172.17.105.28's password: 

 

قدم سوم

محتویات فایل id_rsa.pub که در مرحله اول ایجاد شده است باید در سرور مقصد ودر فایل authorized_keys و در  مسیر ایجاد شده در مرحله قبل وارد شود.

[root@hamed-lab ~]# cat .ssh/id_rsa.pub | ssh root@172.17.105.28 'cat >> .ssh/authorized_keys'
root@172.17.105.28's password: 

قدم چهارم

بر اساس ورژن های مختلف SSH باید برای دایرکتوری و فایل ایجاد شده در سرور مقصد Permission  های لازم را ایجاد کرد.

[root@hamed-lab ~]# ssh root@172.17.105.28 "chmod 700 .ssh ; chmod 640 .ssh/authorized_keys"
root@172.17.105.28's password: 

مرحله پنجم

اتصال بدون Password

اگر مراحل بالا به درستی انجام شده، از این به بعد اتصال به سرور مقصد از طریق کاربر root  بدون Password  انجام خواهد شد.

[root@hamed-lab ~]# ssh root@172.17.105.28 
Last login: Mon Sep 18 21:57:13 2017 from 172.17.105.29
[root@localhost ~]# ifconfig 
eno16780032: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.105.28  netmask 255.255.255.128  broadcast 172.17.105.127
        inet6 fe80::250:56ff:feba:16f2  prefixlen 64  scopeid 0x20<link>
        ether 00:50:56:ba:16:f2  txqueuelen 1000  (Ethernet)
        RX packets 734175  bytes 42688092 (40.7 MiB)
        RX errors 0  dropped 245  overruns 0  frame 0
        TX packets 4779  bytes 790935 (772.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 10  bytes 964 (964.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10  bytes 964 (964.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 امیدوارم مفید واقع شده باشد.

حامد
اشتراک دانش رو دوست دارم برای همین سعی میکنم مطالب آموزشی ای تهیه شده دارای جزئیات خوب و به صورت کامل تهیه بشوند.استفاده از مطالب این سایت در هر جایی بلا مانع می باشد. اما ذکر منبع رفتاری حرفه ای و اخلاقی خواهد بود. من را از نظرات خود مطلع سازید. و اگر میخواهید در مورد من بیشتر بدانید سری به صفحه "در باره من" بزنید.