id_rsa 与 id_rsa.pub 文件详解

摘要:
SSH在正式说id_rsa.pub,之前有必要先说说SSH。假设用户是blue,执行ssh-keygen时,才会在.ssh/这个目录里面产生所需要的两把Keys,分别是私钥与公钥。单向登陆的操作过程:登录A机器ssh-keygen-t[rsa|dsa],将会生成密钥文件和私钥文件id_rsa、id_rsa.pub或id_dsa、id_dsa.pub将.pub文件复制到B机器的.ssh目录,并catid_dsa.pub˃˃~/.ssh/authorized_keys大功告成,从A机器登录B机器的目标账户,不再需要密码了;双向登陆的操作过程:ssh-keygen做密码验证可以使在向对方机器上ssh,scp不用使用密码。

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


免责声明:文章转载自《id_rsa 与 id_rsa.pub 文件详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇springboot2.2.6 elasticsearch 6.8.7 多条件查询、高亮显示、分页Base64加密解密下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Crypto++入门学习笔记(DES、AES、RSA、SHA-256)

最先附上下载地址 背景(只是个人感想,技术上不对后面的内容构成知识性障碍,可以skip): 最近,基于某些原因和需要,笔者需要去了解一下Crypto++库,然后对一些数据进行一些加密解密的操作。 笔者之前没接触过任何加密解密方面的知识(当然,把每个字符的ASCII值加1之流对明文进行加密的“趣事”还是干过的,当时还很乐在其中。),甚至一开始连Crypto+...

FTP、SFTP与FTPS

先简单介绍下FTP的基础知识   FTP的传输有两种方式:ASCII、二进制。   FTP支持两种模式:Standard (PORT方式,主动方式),Passive (PASV,被动方式)。 主动模式   FTP 客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么...

【腾讯Bugly干货分享】Android 新一代多渠道打包神器

关于作者: 李涛,腾讯Android工程师,14年加入腾讯SNG增值产品部,期间主要负责手Q动漫、企鹅电竞等项目的功能开发和技术优化。业务时间喜欢折腾新技术,写一些技术文章,个人技术博客:www.ltlovezh.com 。 ApkChannelPackage是一种快速多渠道打包工具,同时支持基于V1和V2签名进行渠道打包。插件本身会自动检测Apk使用的签...

Jenkins配置git进行构建失败:Error cloning remote repo 'origin'的解决思路

说明:这个没有实际的解决方法,只提供一个思路去解决。 操作系统:windows 背景:在配置的节点之后,由于是windows的系统,运行git克隆地址,使用的是SSH协议地址。出现如下的错误: Error cloning remote repo 'origin' 解决思路: 1、第一时间发现应该是权限问题,那么可以切换成git协议或者https的协议去获取...

新机器下git clone代码新思路

新机器下git clone代码新思路 背景 得到一台新的服务器,需要在这台机器上部署业务代码,常规做法就是 通过ssh-keygen生成密钥公钥 将公钥配置在gitlab上 通过git协议来clone代码 这三步骤中还涉及到首次访问gitlab,需要输入yes来确认,如下图:如果不想人工干预,或者到时批量机器,后者docker中使用呢?我个人之前的做...

ssh和ssl的联系和区别

ssh:Secure Shell,安全Shell,是一个软件,处于应用层旨在取代明文通信的telnet;对应的开源实现程序是openssh。  ssl:Secure Sockets Layer,安全套接字层,是一个协议,处于传输层之上应用层之下用于协商密钥;对应的开源实现库是openssl。 简写 全称 译名 身份 所处层 目的 加密算法 开源实现...