zoukankan      html  css  js  c++  java
  • id_rsa 与 id_rsa.pub 文件详解

    SSH

    在正式说 id_rsa.pub,之前有必要先说说 SSH。

    SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。

    利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。

    一般我们都会使用到两种方式去登陆 SSH,密码登陆和证书登陆。初学者都喜欢用密码登录,甚至是 root 账户登录,密码是 123456,这样很容易遭受恶意攻击,所以在实际的工作中和大多数的互联网公司,都是会使用证书去登陆的。


    证书登录的步骤

    (1)客户端生成证书:私钥和公钥,然后私钥放在客户端,妥当保存,一般为了安全,访问有黑客拷贝客户端的私钥,客户端在生成私钥时,会设置一个密码,以后每次登录 ssh 服务器时,客户端都要输入密码解开私钥(如果工作中,你使用了一个没有密码的私钥,有一天服务器被黑了,你是跳到黄河都洗不清)。

    (2)服务器添加信用公钥:把客户端生成的公钥,上传到 ssh 服务器,添加到指定的文件中,这样,就完成 ssh 证书登录的配置了。

    假设客户端想通过私钥要登录其他 ssh 服务器,同理,可以把公钥上传到其他 ssh 服务器。

    真实的工作中:员工生成好私钥和公钥(千万要记得设置私钥密码),然后把公钥发给运维人员,运维人员会登记你的公钥,为你开通一台或者多台服务器的权限,然后员工就可以通过一个私钥,登录他有权限的服务器做系统维护等工作,所以,员工是有责任保护他的私钥的,如果被别人恶意拷贝,你又没有设置私钥密码,那么,服务器就全完了,员工也可以放长假了。


    客户端建立私钥和公钥

    如果是 Linux,则在客户端终端运行以下命令,如果是 Windows,则可以用 Git Bash(默认安装了 SSH) 终端运行以下命令:

    ssh-keygen -t rsa
    

    rsa 是一种密码算法,还有一种是 dsa,证书登录常用的是 rsa。

    假设用户是 blue,执行 ssh-keygen 时,才会在 .ssh/ 这个目录里面产生所需要的两把 Keys ,分别是私钥 (id_rsa) 与公钥 (id_rsa.pub)

    注:Linux 是在 home/.ssh/ 目录下,而 Windows 是在 C:UsersFeng.ssh 目录下。


    扩展:authorized_keys

    就是为了让两个 Linux 机器之间使用 ssh 不需要用户名和密码。采用了数字签名 RSA 或者 DSA 来完成这个操作。

    模型分析

    假设 A (192.168.20.59)为客户机器,B(192.168.20.60)为目标机;

    要达到的目的:

    • A 机器 ssh 登录 B 机器无需输入密码;
    • 加密方式选 rsa|dsa 均可以,默认 dsa。

    单向登陆的操作过程(能满足上边的目的):

    1. 登录 A 机器
    2. ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa、id_rsa.pub 或 id_dsa、id_dsa.pub
    3. 将 .pub 文件复制到B机器的 .ssh 目录, 并cat id_dsa.pub >> ~/.ssh/authorized_keys
    4. 大功告成,从 A 机器登录 B 机器的目标账户,不再需要密码了;(直接运行#ssh 192.168.20.60

    双向登陆的操作过程:

    1. ssh-keygen 做密码验证可以使在向对方机器上 ssh,scp 不用使用密码。
    2. 两个节点都执行操作:#ssh-keygen -t rsa,然后全部回车,采用默认值。
    3. 这样生成了一对密钥,存放在用户目录的 ~/.ssh 下。

    将公钥考到对方机器的用户目录下,并将其复制到~/.ssh/authorized_keys中(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys)。


    参考:

    id_rsa id_pub 公钥与私钥

    每日扫盲(三):id_rsa、id_rsa.pub 、authorized_keys


  • 相关阅读:
    Android总结之json解析(FastJson Gson 对比)
    Android性能优化之UncaughtExceptionHandler定制自己的错误日志系统
    IOS遍历网页获取网页中<img>标签中的图片url
    IOS各种集合遍历效率对比
    cx_oracle访问处理oracle中文乱码问题
    使用tar解压文件提示gzip: stdin: not in gzip format错误
    Mac安装crfpp
    oracle 常用操作
    docker启动centos7后sudo不能使用
    常见Python爬虫工具总结
  • 原文地址:https://www.cnblogs.com/linuxAndMcu/p/14487989.html
Copyright © 2011-2022 走看看