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

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 地址,形如[email protected]:wzw/leave-a-message.git。 请使用这个地址来访问您的代码仓库。

 

第二步:生成公钥

在ubuntu终端输入命令行:$ssh-keygen -t rsa -b 4096 -C "[email protected]"

接下来就一路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 [email protected]

 

第三步:在coding.net中添加公钥

首先在在ubuntu中输入命令行,获取公钥内容:cat /home/linux(ubuntu的用户名)/.ssh/id_rsa.pub

复制其全部内容,添加到你coding.net账户“SSH 公钥”页面中,名字可以随意起,

 Git公钥生成及后续问题解决_第1张图片

完成后点击“添加”,然后输入你的动态密码就添加完成啦!

 

第四步:命令行测试,尝试链接主机

$ ssh -T [email protected] // 注意 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 [email protected]出现的消息是 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 [email protected]

好啦,一般到这步问题应该都解决啦~

你可能感兴趣的:(Git学习)