=========兩台(多台)機器之間實現ssh免密登錄(實質上是使用公鑰 私鑰對)================
關於公鑰私鑰對
一般ssh免密登錄 采用的ssh的rsa密鑰:
id_rsa 私鑰
id_rsa.pub 公鑰
下述命令產生不同類型的密鑰
ssh-keygen -t dsa
ssh-keygen -t rsa
ssh-keygen -t rsa1
首先兩台機器分別為:
master
MHA-Manager
############## master ########################
[root@master ~]# ssh-keygen -t rsa -P '' ##################################### #-P表示密碼,-P '' 就表示空密碼,也可以不用-P參數,這樣就要三車回車,用-P就一次回車。 #該命令將在/root/.ssh目錄下面產生一對密鑰id_rsa和id_rsa.pub。 ###################################### Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): 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: 7f:aa:7d:27:12:30:d5:61:1c:34:d2:7d:65:34:20:7c root@master The key's randomart image is: +--[ RSA 2048]----+ | o**=.o=| | .+=E..o| | . . . | | o | | So | | .. | | ... | | ..oo . | | ..oo o | +-----------------+
[root@master ~]# cd /root/.ssh/ [root@master .ssh]# ll total 8 #這就是master的公鑰和私鑰對 -rw------- 1 root root 1675 Mar 13 14:22 id_rsa -rw-r--r-- 1 root root 393 Mar 13 14:22 id_rsa.pub [root@master .ssh]# more id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD1pf10d8qtoUtDrwfZKYiEcrDAXcmATu9dmHyAwEPSXI+wQgaNI4H4GogTCWymyguIMl9MbsMrNuXNMZgA4 jbySaiuCvcB0a/1IoKzf3hZ9VnF/IxxTja5erJxKk5QOyhBNZJxOFdgqaWzTjlenx/Gm+BK2mbjN3RbD+AUoR06jEV80v8OYTD5j0HzvT0AlJRDcFaNFXDxBg xQrZsSR482glD9+ukmgU0TSFOAkKbGt+aGhqQVwPjjfiEZ0rKyY908+6cVna720bmNB2WzvQkjThyFHvQ4WXyppedXYOOkjLwsqottK9VGT+6qNN1Sp+Vs68Q XRI9k79WVFtIeEPCV root@master
[root@master .ssh]# cp id_rsa.pub authorized_keys #把master的公鑰發送給MHA-Manager,注意要更改名字,scp到/root/.ssh目錄夾下 #第一次傳輸時,需要輸入yes [root@master .ssh]# scp authorized_keys root@118.25.50.236:/root/.ssh/ The authenticity of host '118.25.50.236 (118.25.50.236)' can't be established. ECDSA key fingerprint is 22:49:b2:5c:7c:8f:73:56:89:29:8a:bd:56:49:74:66. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '118.25.50.236' (ECDSA) to the list of known hosts. root@118.25.50.236's password: authorized_keys 100% 393 0.4KB/s 00:00
############ MHA-Manager ##########################
#MHA-Manager這邊收到master的公鑰,需要更改權限為600
[root@MHA_Manager .ssh]# chmod 600 authorized_keys
#然后生成自己的公鑰私鑰對
[root@MHA_Manager .ssh]# ssh-keygen -t rsa -P '' Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): 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: 53:c9:ce:99:a3:63:37:ae:2a:a6:a5:69:6c:02:37:9a root@MHA_Manager The key's randomart image is: +--[ RSA 2048]----+ | | | . . | | + | | + o | | S * | |. o o . | |.= .. + o | |E ++o . + . | | ++o ...... | +-----------------+ [root@MHA_Manager .ssh]# ll total 12 #以下就是MHA-Manager的公鑰 私鑰對 -rw------- 1 root root 393 Mar 13 14:25 authorized_keys -rw------- 1 root root 1679 Mar 13 14:27 id_rsa -rw-r--r-- 1 root root 398 Mar 13 14:27 id_rsa.pub [root@MHA_Manager .ssh]# more id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDufx2SVQlykHPTQtenp7nb5jArwc6OjXBIZeYVUR2U7cKfhkW08IJQdotsNOyxgFEv3clIlkFiEOZ1nvLlq tsRepAr/sy4KGfy+0Ucj3cx6sqvdxQoEIzKc/iUTLxTVJgVZrZQW9g0YyUv5i/cvAFQ9ZjSfQslS/zQvKolMVPo900VEJ1lxesOJ5oaNU3zpXVF4e8tWsePrT /AxrUxEo0ZuHvf9YfXI8tj0KZsK62MflPLJg4+1ibbRkQtiMJi+i/F+Fk/IY/DKBZ2f7Wy/JCGxIi3Y5rCGbkQQD9XVEHUsmkFIxgiNQ4QFjB5CH7uMl6q47d lyq24xm+3b9a3DJFf root@MHA_Manager [root@MHA_Manager .ssh]# vim authorized_keys
#將MHA-Manager的公鑰也放在authorized_keys文件中,注意一個公鑰就是一行,切不可出現換行符
[root@MHA_Manager .ssh]# more authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD1pf10d8qtoUtDrwfZKYiEcrDAXcmATu9dmHyAwEPSXI+wQgaNI4H4GogTCWymyguIMl9MbsMrNuXNMZgA4 jbySaiuCvcB0a/1IoKzf3hZ9VnF/IxxTja5erJxKk5QOyhBNZJxOFdgqaWzTjlenx/Gm+BK2mbjN3RbD+AUoR06jEV80v8OYTD5j0HzvT0AlJRDcFaNFXDxBg xQrZsSR482glD9+ukmgU0TSFOAkKbGt+aGhqQVwPjjfiEZ0rKyY908+6cVna720bmNB2WzvQkjThyFHvQ4WXyppedXYOOkjLwsqottK9VGT+6qNN1Sp+Vs68Q XRI9k79WVFtIeEPCV root@master ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDufx2SVQlykHPTQtenp7nb5jArwc6OjXBIZeYVUR2U7cKfhkW08IJQdotsNOyxgFEv3clIlkFiEOZ1nvLlq tsRepAr/sy4KGfy+0Ucj3cx6sqvdxQoEIzKc/iUTLxTVJgVZrZQW9g0YyUv5i/cvAFQ9ZjSfQslS/zQvKolMVPo900VEJ1lxesOJ5oaNU3zpXVF4e8tWsePrT /AxrUxEo0ZuHvf9YfXI8tj0KZsK62MflPLJg4+1ibbRkQtiMJi+i/F+Fk/IY/DKBZ2f7Wy/JCGxIi3Y5rCGbkQQD9XVEHUsmkFIxgiNQ4QFjB5CH7uMl6q47d lyq24xm+3b9a3DJFf root@MHA_Manager
將MHA-Manager的authorized_keys這個文件也發送給master
(如果是多台機器的話,同理將每台機器的公鑰都統一復制到一個authorized_keys文件中,切記一個公鑰是一行,中間不能出現換行符。然后再將authorized_keys這個統一的公鑰文件,scp給其他機器)
############ MHA-Manager ###############
[root@MHA_Manager .ssh]# scp authorized_keys root@111.231.79.212:/root/.ssh/ root@111.231.79.212's password: authorized_keys 100% 794 0.8KB/s 00:00
############# master ###############
[root@master .ssh]# ll total 16 -rw------- 1 root root 794 Mar 13 14:37 authorized_keys -rw------- 1 root root 1675 Mar 13 14:22 id_rsa -rw-r--r-- 1 root root 393 Mar 13 14:22 id_rsa.pub -rw-r--r-- 1 root root 175 Mar 13 14:25 known_hosts [root@master .ssh]# more authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD1pf10d8qtoUtDrwfZKYiEcrDAXcmATu9dmHyAwEPSXI+wQgaNI4H4GogTCWymyguIMl9MbsMrNuXNMZgA4 jbySaiuCvcB0a/1IoKzf3hZ9VnF/IxxTja5erJxKk5QOyhBNZJxOFdgqaWzTjlenx/Gm+BK2mbjN3RbD+AUoR06jEV80v8OYTD5j0HzvT0AlJRDcFaNFXDxBg xQrZsSR482glD9+ukmgU0TSFOAkKbGt+aGhqQVwPjjfiEZ0rKyY908+6cVna720bmNB2WzvQkjThyFHvQ4WXyppedXYOOkjLwsqottK9VGT+6qNN1Sp+Vs68Q XRI9k79WVFtIeEPCV root@master ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDufx2SVQlykHPTQtenp7nb5jArwc6OjXBIZeYVUR2U7cKfhkW08IJQdotsNOyxgFEv3clIlkFiEOZ1nvLlq tsRepAr/sy4KGfy+0Ucj3cx6sqvdxQoEIzKc/iUTLxTVJgVZrZQW9g0YyUv5i/cvAFQ9ZjSfQslS/zQvKolMVPo900VEJ1lxesOJ5oaNU3zpXVF4e8tWsePrT /AxrUxEo0ZuHvf9YfXI8tj0KZsK62MflPLJg4+1ibbRkQtiMJi+i/F+Fk/IY/DKBZ2f7Wy/JCGxIi3Y5rCGbkQQD9XVEHUsmkFIxgiNQ4QFjB5CH7uMl6q47d lyq24xm+3b9a3DJFf root@MHA_Manager
實現效果如下:
[root@master .ssh]# sshman Last login: Tue Mar 13 14:35:33 2018 from 111.231.79.212 [root@MHA_Manager .ssh]# sshmaster Last login: Tue Mar 13 14:41:02 2018 from 118.25.50.236
這里做了別名的配置(寫在root里面,只對root有效)
[root@master ~]# egrep 'ssh' ~/.bashrc #for ssh alias sshman='ssh root@118.25.50.236' [root@MHA_Manager ~]# egrep 'ssh' ~/.bashrc #for ssh alias sshmaster='ssh root@111.231.79.212'
總結:以前剛接觸公鑰私鑰的時候,總是分不清。於是就記一下:私鑰永遠是自己的,把公鑰分出去,能匹配我的私鑰的,就是小伙伴(擁有公鑰的)。
網上關於私鑰公鑰的文章很多,只是在搭建MHA的時候突然覺得可以把ssh免密寫成筆記,也是當做給自己回憶一下linux一些知識點。
貼一篇寫的很好的MHA詳解:
http://www.cnblogs.com/gomysql/p/3675429.html