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

    ssh免密码登录的原理:


    serverA 免密码登录到 serverB

     

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

    step1:

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

    ssh-keygen -t rsa

    此时在 ~/.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 


    引用与参考:

    http://www.cnblogs.com/kex1n/p/6017963.html

    http://chenlb.iteye.com/blog/211809

    https://jingyan.baidu.com/article/2fb0ba4043124a00f2ec5f0f.html

    http://blog.csdn.net/xyl295528322/article/details/37762557


  • 相关阅读:
    sql server 常用函数 及 方法
    jQuery校验 表单验证
    解决VS2012新建MVC4等项目时,收到加载程序集“NuGet.VisualStudio.Interop…”的错误
    CC++宏大全
    Linux在线文档
    x264编码详细文字全过程
    国外程序员推荐的免费编程书籍资源
    使用eclipse快捷键
    aria2下载工具
    Ubuntu 12.04 后的VMWare Share Fold
  • 原文地址:https://www.cnblogs.com/GO-NO-1/p/8058603.html
Copyright © 2011-2022 走看看