引言
今天在搭建GIT环境的时候,又在网上搜索文章了,自己想想,还是总结一下吧。算是一个笔记。
SSH是什么
摘自百度百科:
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
可以看到,SSH是一个安全的网络协议,是用于远程登录的。对,是的,我们的Git,就需要这么样的机制来互相验证身份。
SSH key 在Git中的使用
我们在搭建环境的时候,首先要保证本机和远程主机是可以安全通信的,不然,是不能够push和change操作的。在Git服务器上的Settings有个SSH keys的选项,这里是添加本机的公钥的,而这个公钥,是在本机生成的,生成命令:
ssh-keygen -t rsa -C "yourEmail"
注释:
参数含义:
-t指定密钥类型,默认是rsa
-C 注释文字,一般是有意义的字符串
-f 指定密钥文件存储文件名
命令执行之后会生成id_rsa和id_rsa.pub,顾名思义,就是私钥和公钥。
打开id_rsa.pub复制内容到刚才的SSH keys中内容.(路径:~/.ssh)
填写完成后,client被远程主机信任,相应的client的.ssh文件夹下中的known_hosts中也有远程主机的白名单。就完成了互信,可以安全的通信。
结束语
本文涉及到了非对称加密的知识,以后有机会,总结一下。