zoukankan      html  css  js  c++  java
  • 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文件中,注意一个公钥就是一行,切不可出现换行符

     
    [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
     
  • 相关阅读:
    第四章 方法(4.2 方法的嵌套调用)
    C#利用for循环打印图形练习题
    第三章 C#程序结构 (3.3 循环结构)
    第六章 数组和索引器 (6.6 索引器)
    第五章 类与对象 5.2 猫类(案例二)
    第五章 类与对象 5.1 时间类(案例一)
    第三章 C#程序结构[3.2 选择结构的应用(Windows窗体应用程序)(四)]
    第三章 C#程序结构(3.1 顺序与选择结构)
    第二章 C#语法基础 (2.2 C#语言的运算符和表达式)
    第二章 C#语法基础(2.1C#语言的数据类型二)
  • 原文地址:https://www.cnblogs.com/Kid-Zhou/p/8557193.html
Copyright © 2011-2022 走看看