zoukankan      html  css  js  c++  java
  • ssh 免密码登录(设置后仍需输密码的原因及解决方法)

    按操作步骤操作不行的最可能原因是:文件权限,不论是a机还是要访问的b机的文件的权限都要改成对应的700,600;必须严格是这个权限,否则会出现设置免密fail的情况。

    serverA 免密码登录到 serverB

    机器A 向 机器B 进行免密码登陆

    step1:

    在机器A中生成 私钥和公钥:

    命令:ssh-keygen -t rsa,一路回车就行,如果需要passphrase密码,自行输入就行,一路回车passphrase密码为空

    此时在 ~/.ssh/ 目录下生成了公钥(id_rsa.pub)和私钥(id_rsa)

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    step2:

    把机器A的公钥(id_rsa.pub)复制到机器B ~/.ssh/authorized_keys 文件里,两种常用方法

    方法1:

    scp ~/.ssh/id_rsa.pub username@host:/home/B/id_rsa.pub
    
    //此时scp需要输入 登录机器B username用户的密码
    
    //然后进入机器B内把 /home/B/id_rsa.pub 文件内容加写进 ~/.ssh/authorized_keys 文件:
    
    cat /home/B/id_rsa.pub /home/B/.ssh/authorized_keys
    

    方法2:

        //在机器A中使用 ssh-copy-id 把公钥加写到机器B的 ~/.ssh/authorized_keys 文件
    
        ssh-copy-id username@host
    
        //执行后输入机器B username用户的密码,效果和方法1一样

    step3:

    修改机器B ~/.ssh/authorized_keys 文件的权限:

    chmod 600 ~/.ssh/authorized_keys

    此时如果机器B没有~/.ssh 目录需要手动创建

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    step4:

    此时机器A可以进行免验证登录 机器B

    ssh username@host

    参阅网上很多方法后,发现步骤都差不多,但是却屡屡失败,设置完后仍然要输入密码,后面发现了是被登录机器的文件权限问题:

        //用户权限
    
        chmod 700 /home/username
    
        //.ssh文件夹权限
    
        chmod 700 ~/.ssh/
    
        // ~/.ssh/authorized_keys 文件权限
    
        chmod 600 ~/.ssh/authorized_keys

    还有可能这个文件内容被注释了(改成下图的状态)

    vi /etc/ssh/sshd_config 

    1 如果还是无法登陆,可能是Linux禁用了root账户ssh登陆,解决方法:

    编辑配置文件

    vim /etc/ssh/sshd_config

    2 修改  PermitRootLogin  后面的  no 为 yes,并且去掉前面的注释符,同时可以限制失败次数
    注意: 这个失败次数是对所有用户都起作用的。

    #LoginGraceTime 2m
    PermitRootLogin yes
    #StrictModes yes
    MaxAuthTries 3
    #MaxSessions 10

    3 重启 sshd 服务:

    systemctl restart sshd.service
  • 相关阅读:
    Zircon
    Linux与Windows的设备驱动模型对比
    c++11 右值引用、移动语义和完美转发
    【Java学习笔记之十四】Java中this用法小节
    【机器学习笔记之四】Adaboost 算法
    【Java学习笔记之十三】初探Java面向对象的过程及代码实现
    【Java学习笔记之十二】Java8增强的工具类:Arrays的用法整理总结
    【机器学习笔记之三】CART 分类与回归树
    【Java学习笔记之十一】Java中常用的8大排序算法详解总结
    【Java学习笔记之十】Java中循环语句foreach使用总结及foreach写法失效的问题
  • 原文地址:https://www.cnblogs.com/guanyf/p/10600458.html
Copyright © 2011-2022 走看看