GitHub生成密匙(通过https方式和ssh方式连接服务器)

 

Git可以通过https方式和ssh方式连接服务器上的仓库。

两者比较: 
1.https: 比较方便,但是每次fetch和push代码都需要输入账号和密码,略显麻烦 
2.ssh: 传输前压缩数据,传输效率高,不需要每次提供账号密码

一、Git的user name和email设置

$ git config --global user.name "yourusername"
$ git config --global user.email "[email protected]"

二、生成密钥

使用你注册github的邮箱生成秘钥

$ ssh-keygen -t rsa -C "[email protected]"

间连续3次Enter键

这里写图片描述

.ssh目录会生成id_rsa和id_rsa.pub两个文件,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人(关于RSA加密,可以自行百度,这里不详细展开)

如果之前此电脑已经生成过密钥,根据提示在overwrite的时候选择 y 覆盖即可。

三、添加SSH key到github账户

在GitHub的账户添加SSH Key,GitHub才能根据此进行加密解密,从而判断此提交是由你本人操作。登录GitHub在页面右上角个人图像下拉中选择Settings进入页面:

四、测试SSH key是否设置成功

$ ssh -T [email protected]
The authenticity of host 'github.com (192.30.253.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes

是否继续连接?输入 yes

输出如下,则表示通过

Hi yourusername! You've successfully authenticated, but GitHub does not provide shell access.

五、设置项目连接方式(以下可以忽略)

$ git remote set-url [email protected]:yourusername/project-name

此行命令(set-rul)修改的是项目中 .git (隐藏)文件夹下的config文件 
原来如下:

[remote "origin"]
    url = https://github.com/yourusername/project-name
    fetch = +refs/heads/*:refs/remotes/origin/*

修改后:

[remote "origin"]
    url = [email protected]:yourusername/project-name
    fetch = +refs/heads/*:refs/remotes/origin/*

之后我们的提交都会变为ssh连接

发布了57 篇原创文章 · 获赞 59 · 访问量 36万+

猜你喜欢

转载自blog.csdn.net/mrsyf/article/details/79778632