zoukankan      html  css  js  c++  java
  • Linux上ssh免秘钥互登

    两台机器分别为:
    master:192.168.1.10
    sever1:192.168.1.20

    1、检查机器名和连通性

    a.查看/etc/hostname

    [root@master master]# more /etc/hostname 
    master
    [master@sever1 ~]$ more /etc/hostname 
    sever1

    b.查看/etc/hosts

    [master@sever1 ~]$ more /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 sever1
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.1.10 master
    192.168.1.20 sever1

    c.修改ssh config配置  /etc/ssh/sshd_config

    PubkeyAuthentication yes      #号去掉
    
    AuthorizedKeysFile      .ssh/authorized_keys

    另外在该文件中显示,AuthorizedKeysFile      .ssh/authorized_keys,keys存储路径在”.ssh“的文件夹的authorized_keys文件里。

    2.生成秘钥文件

    由于刚开始是没有.ssh目录的,所有需要创建,有的话就不再创建。

    在master操作:

    [master@master ~]$ mkdir .ssh
    [master@master ~]$ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/master/.ssh/id_rsa): 
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /home/master/.ssh/id_rsa.
    Your public key has been saved in /home/master/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:fXev+pN/A3hbytQBouTfgN2rgBFWDEDUFE60n9rEbdA master@master
    The key's randomart image is:
    +---[RSA 2048]----+
    |    o+=*=.       |
    |      o+.o.. .   |
    |      .o+.+Eo .  |
    |       .o=+o . . |
    |        S=oo= + o|
    |       .+..+ B +.|
    |       . .. = =..|
    |           . +oo.|
    |            .ooo+|
    +----[SHA256]-----+
    [master@master ~]$ ll .ssh
    总用量 8
    -rw-------. 1 master master 1679 10月 30 17:09 id_rsa
    -rw-r--r--. 1 master master  395 10月 30 17:09 id_rsa.pu

    在.ssh 目录下生成了  id_rsa(私钥)     id_rsa.pub(公钥)

    chmod 600 authorized_keys

    在sever1上操作:

    mkdir .ssh

    把master .ssh/authorized_keys   复制到server1 .ssh 目录下

    [master@sever1 .ssh]$ scp id_rsa.pub 192.168.1.10:/home/master/
    master@192.168.1.10's password: 
    id_rsa.pub                                                                     100%  395   146.3KB/s   00:00 

    在server1 创建秘钥文件

    ssh-keygen -t rsa
    
    cat id_rsa.pub >> authorized_keys

    把sever1 的 公钥 id_rsa.pub  复制到master上的authorized_keys 中

    [master@sever1 .ssh]$ scp id_rsa.pub 192.168.1.10:/home/master/
    master@192.168.1.10's password: 
    id_rsa.pub                                                                                   100%  395   146.3KB/s   00:00 

    在master上   cat id_rsa.pub >>.ssh/authorized_keys

    操作检查:

    在master上

    [master@master .ssh]$ more authorized_keys 
    ssh-rsa ***SotejwKqLFN67gQsc8oZhdirqPLUxn9ZeWRLj7z3fxDeDvL0fDJg3lQYVuMFyBN8qHPWYv36pttHSzeCVetxC3
    fFv7QMtZ036AawoiCMJTtteNFCkcaVnvEn8CJHrFH3D7AR master@master ssh-rsa ***PxJEBChJ2QVVfY1soOpZCzgP60lYhx7AsdPe8L2OV69QnGjdSNGGCedppufAxexW0jEObES7FUa4vwtLgw8+S5 8QT52SpWm8rYC9FtQlfg3hwcAAgLnPdsEJj5pMhj4g5W2R master@sever1

    在server1上

    [master@sever1 .ssh]$ more authorized_keys 
    ssh-rsa ***8i1ZYqsRM3XRmRR6iGIqV63oW763l3BR7+E5Y76mA1jNYnhl1fLOU4V6xYx
    fFv7QMtZ036AawoiCMJTtteNFCkcaVnvEn8CJHrFH3D7AR master@master
    ssh-rsa ***8L2OV69QnGjdSNGGCedppufAxexW0jEObES7FUa4vwtLgw8+S5Jj9m0SYO7
    8QT52SpWm8rYC9FtQlfg3hwcAAgLnPdsEJj5pMhj4g5W2R master@sever1

    但是在master 和server1 上分别ssh 依旧是需要密码的,该怎么解决?

    在master 和server1   分别执行 chmod 700 .ssh

    验证:

    在master上执行

    [master@master ~]$ ssh 192.168.1.20
    Last login: Tue Oct 30 17:40:13 2018 from 192.168.1.1
    [master@sever1 ~]$ 

    在server1上执行

    [master@sever1 ~]$ ssh 192.168.1.10
    Last login: Tue Oct 30 17:40:10 2018 from 192.168.1.1
    [master@master ~]$ 

    验证通过。

    另计:

    会在当前用户的主目录下生成一个.ssh文件夹用于保存:密钥、authorized_keys、等文件。

          1:)生成密钥
              ssh-keygen -t rsa    (一直回车就行)

          2:将公钥复制进入一个名字为"authorized_keys"中。
              这个名字是默认的,不能改变,
              因为系统就是根据这个文件来判断那些机器的公钥已经保存在这里了,
              可以进行免钥登录。
              cat id_rsa.pub >> authorized_keys  
          (这是放在本地的authorized_keys,是为了能够ssh localhost)

          3:分发密钥 (这是最主要的!因为目的主机有client机器的公钥才能免密登录)

          ssh-copy-id 目的主机IP

  • 相关阅读:
    五分钟上手Markdown
    css中居中方法小结
    事务和同步锁
    插入排序
    插入排序
    交换排序
    eclipse 常用快捷键
    交换排序
    二叉搜索树(BST)
    二叉树遍历以及根据前序遍历序列反向生成二叉树
  • 原文地址:https://www.cnblogs.com/hello-wei/p/9878309.html
Copyright © 2011-2022 走看看