目标       

        如果不绑定的话,在clone私有仓库和提交修改至远程仓库时,都需要在命令行内输入github/gitee的账号密码。

        本文章的操作是将本地ssh密钥上传至github,以达到后续不再需要每次都输入账号密码

        (网上所有绑定ssh的教程,目的都是这个,但就没人解释能带什么)

        我们需要在本地使用非对称算法生成两个文件,ssh公钥和私钥。私钥保存在本电脑,将公钥的内容,通过github和gitee的个人管理界面登记。  在本地git连接github时,就会使用本地私钥生成一串信息发送给github服务器,对方使用我们之前提交的公钥验证通过,就登陆成功了。

开始操作

windows系统,请使用安装git后所提供的git bash软件,这个软件可以让windows实现跟linux一样的命令行指令操作(基于mingw)。

 

1在本地生成ssh-key

        大部分教程会要求填写邮箱号码,但github和gitee都只能获取生成后的那串公钥,并不能破解得到存储于里面的邮箱号数据。这串字符串的功能只是备注,甚至不加也不会影响功能

ssh-keygen -t rsa -C " orange2c "

        输入指令后,会要求填写存放路径,以及设置密码,每次连接都需要输入这里设置的密码。我们直接按三次回车就行,存放在默认路径,默认无密码。

        

如果你想同时绑定github和gitee,不需要创建两次密钥,可以用创建的这一份,同时登记给两个网站。

2复制公钥内容

进入默认存放密钥的路径

linux的默认路径位于 ~/.ssh

cd  ~/.ssh

windows的默认路径位于 /c/Users/本人用户名/.ssh/

路径下有两个文件,id_rsa是私钥文件,需保存好。后缀是.pu的文件里就存储着我们要登记到网站的公钥

                

这里可以使用cat命令,将文件内容直接输出出来

cat id_rsa.pub

这一大坨东西就是公钥,需要全部复制。不怕泄露出来。

3将公钥登记到github/gitee

(gitee的界面设计跟github几乎一模一样,还有中文,就不赘述gitee的操作了)

(1)先进入设置

                

(2)选择添加新ssh key

                

(3)把公钥内容贴进去,title随便写,不影响实际连接。确认添加

        

这样就添加好了

        

4测试连接

使用指令测试是否能正常连接

ssh -T git@github.com
ssh -T git@gitee.com

第一次连接,会询问你是不是想要连接,想要输入yes。最后显示HI xxxx! You've successfully authenticated即是能成功连接

5使用

注意,clone时不能使用https形式的链接,必须使用ssh链接来clone。我们提交ssh公钥,就只能在ssh连接时不用输密码

使用git clone https://github.com/orange2c/xxxx.git 不能享受不输密码的便利

改为使用 git clone git@github.com:orange2c/xxxx.git 才能享受

实际使用push推送至远程仓库时,便不再需要输入账号密码。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐