为了让两个机器之间使用ssh不需要用户名和密码,所以采用了数字签名RSA和DSA来完成操作。
在git生成密钥的时候,有两种方式:ssh-keygen -t rsa -C "邮件地址" 和 ssh key-gen -t rsa -b 4096 -C "邮件地址"。使用的时候,有些同学不明白什么区别。
1.ssh
SSH为secure shell的缩写,SSH在建立在应用层基础上的安全协议。SSH目前比较可靠,专门为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效的防止远程管理过程中的信息泄露问题。
2.ssh-keygen
从客户端来看,ssh提供了两种级别的安全验证:
第一种级别(基于口令的安全验证):只要你知道自己的账户名和密码,就可以登到远程主机。所有传输的数据都会被加密,但不能保证你正在连接的服务器就是你想要连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
第二种级别(基于密钥的安全验证) ssh-keygen:需要密钥,这里密钥是非对称加密。
3.t 是type的缩写
-t指定密钥的类型,有两种:RSA和DSA
4.rsa:指RSA算法
RSA:RSA算法是一种非对称加密算法,由三个MIT牛人弄出来的,RSA由他们三人的姓的首字母组合
DSA:digital signature algorithm
5. -b :b是bit的缩写
指定生成的密钥长度。
6.4096
对于RSA密钥,最小要求是768位,默认是2048位。4096是指RSA的密钥长度为4096位
7.-C :comment的缩写
提供一个注释,用于识别这个密钥。
8."邮件地址":用于识别这个密钥,里面的内容可以随意写
总结:当你创建ssh的时候:-t 表示密钥的类型 ,-b表示密钥的长度,-C 用于识别这个密钥的注释 ,这个注释你可以输入任何内容,很多网站和软件用这个注释作为密钥的名字。