ssh免密登陆(使用公钥私钥对登陆)

=========两台(多台)机器之间实现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文件中,注意一个公钥就是一行,切不可出现换行符html

 
[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 ###############mysql

[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有效)linux

[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'

 

总结:之前刚接触公钥私钥的时候,老是分不清。因而就记一下:私钥永远是本身的,把公钥分出去,能匹配个人私钥的,就是小伙伴(拥有公钥的)。sql

网上关于私钥公钥的文章不少,只是在搭建MHA的时候忽然以为能够把ssh免密写成笔记,也是当作给本身回忆一下linux一些知识点。vim

 

贴一篇写的很好的MHA详解:
http://www.cnblogs.com/gomysql/p/3675429.html