您的位置:首页 > 编程语言 > C语言/C++

Git公钥生成及后续问题解决

2017-08-05 10:42 225 查看
Git公钥生成及后续问题解决
  因为博主使用的Ubuntu昨天莫名其妙出现故障,终端消失在搜索无果后,选择重启Ubuntu,结果ubuntu彻底崩了,只出现桌面背景,没有图标,在进入控制台设置多次无果后,博主选择重新安装ubuntu.在更改完中文环境,安装好中文输入法后,最大的问题来了,要进行配置我的git仓库coding.net,在一开始git init ,git push
-u origin master,git add hello.c,git commit  -m “注释”以后,git push提示我:Permission denied ,也就是没有权限进行git push,正好在之前的ubuntu每次git push都要输入用户名和密码,过程太过繁琐,于是趁这个机会我就设置一下git公钥,一劳永逸。下面跟着我的步骤来设置吧~

  账户 SSH 公钥是跟用户账户关联的公钥,一旦设置,SSH 就拥有账户下所有项目仓库的读写权限。 设置“账户 SSH 公钥”是开发者使用 SSH 方式访问/修改代码仓库的“前置工作”,分为“获取 SSH 协议地址”、“生成公钥”、“在 Coding.net 添加公钥”三个步骤。
第一步:获取SSH协议地址;
在项目的代码页面点击 SSH 切换到 SSH 协议, 获得 clone 地址,形如git@git.coding.net:wzw/leave-a-message.git。 请使用这个地址来访问您的代码仓库。
 


第二步:生成公钥
在ubuntu终端输入命令行:$ssh-keygen -t rsa -b 4096 -C
"your_email@example.com"

接下来就一路enter,不建议更改路径及加密,当然你想设置密码也可以。
出现下述信息,则表示公钥生成成功
Your identification has been saved in /Users/you/.ssh/id_rsa.
# Your public key has been saved in /Users/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com
 
第三步:在coding.net中添加公钥
首先在在ubuntu中输入命令行,获取公钥内容:cat /home/linux(ubuntu的用户名)/.ssh/id_rsa.pub
复制其全部内容,添加到你coding.net账户“SSH 公钥”页面中,名字可以随意起,
 


完成后点击“添加”,然后输入你的动态密码就添加完成啦!
 
第四步:命令行测试,尝试链接主机
$ ssh -T git@git.coding.net // 注意 git.coding.net 接入到 CDN 上所以会解析多个不同的 host ip The authenticity of host ‘git.coding.net (61.146.73.68)’ can not be established. RSA key fingerprint
is 98:ab:2b:30:60:00:82:86:bb:85:db:87:22:c4:4f:b1. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added ‘git.coding.net,61.146.73.68’ (RSA) to the list of kn own hosts.

 
Enter passphrase for key ‘/c/Users/Yuankai/.ssh/id_rsa’: Coding.net Tips : [ Hello Kyle_lyk! You have connected to Coding.net by SSH successfully! ]

如果你出现了上述信息,那么恭喜你,已经设置成功了,你可以git init 然后git pull 等一系列操作了。然而,大多数人并没有这么幸运,大多敲完命令行$ ssh -T git@git.coding.net出现的消息是 Permission denied (publickey).
而我的解决办法是:

1.最先,查看一下密钥: ls /home/linux/.ssh/
ssh -add -l 查看密钥列表,不为空进行下述操作
2.测试ssh链接是否成功:$ ssh -v git@@git.coding.net
最后两行显示的是debug1: No more authentication methods to try.  
Permission denied (publickey).  
3.ssh-agent -s 这步只是打印一下信息
4.ssh-add ~/.ssh/id_rsa
一般不会报错,会显示认证成功
5.最后一步:验证key: ssh -T git@git.coding.net
好啦,一般到这步问题应该都解决啦~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git C++ 版本控制