Git SSH Key生成添加

Git SSH Key生成添加(假设本地已安装Git)

执行命令步骤:

1.跳转到.ssh目录;[如果没有对应的文件夹,则执行 mkdir ~/.ssh]

1
cd ~/.ssh/

2.设置git用户名和邮箱

1
2
git config --global user.name "xq12345"
git config --global user.email "xq12345@qq.com"

3.生成SSH密钥过程;

1
sh-keygen -t rsa -C "xq12345@qq.com"

4.查看是否生成SSH密钥;[两个对应文件:id_rsa(私钥)、id_rsa.pub(公钥)]

1
ls

5.登陆远程仓库,复制id_rsa.pub里面的内容添加到远程仓库SSH keys中。

1
vim id_rsa.pub

为什么设置SSH到远程仓库?

使用密码登录,每次都必须输入密码,非常麻烦。好在SSH还提供了公钥登录,可以省去输入密码的步骤。

  • 所谓”公钥登录”,原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码,这种方法要求用户必须提供自己的公钥。

篇外:啥是SSH?

定义

SSH(安全外壳协议),SSH 为 Secure Shell 的缩写,SSH是一种网络协议,用于计算机之间的加密登录。

功能

SSH能够保证安全,原因在于它采用了公钥加密。

  • 传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。通过使用SSH,你可以把所有传输的数据进行加密,这样”中间人”这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的”通道”

中间人攻击

SSH协议登录过程:远程主机收到用户的登录请求,把自己的公钥发给用户 –> 用户使用这个公钥,将登录密码加密后,发送回来 –> 远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录

  • 这个过程本身是安全的,但是实施的时候存在一个风险:如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪。因为不像https协议,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。
    可以设想,如果攻击者插在用户与远程主机之间(比如在公共的wifi区域),用伪造的公钥,获取用户的登录密码。再用这个密码登录远程主机,那么SSH的安全机制就荡然无存了。这种风险就是著名的”中间人攻击”(Man-in-the-middle attack)。
0%