艺灵设计

全部文章
×

git添加SSH公钥后本地验证失败的解决方法之一

作者:艺灵设计 - 来源:http://www.yilingsj.com - 发布时间:2019-10-23 23:54:42 - 阅: - 评:0 - 积分:0

摘要:
之前在公司创建git仓库时遇到过一次本地公钥验证失败的情况,当时简单的做了下笔记。没想到今天再创建仓库时又遇到了这个问题,所以就详细的整理了下之前的笔记。如果看官在摘取git代码时也遇到了权限问题,说不定这篇文章会有帮助哦~......

一、吐槽

话说,自从艺灵找到这份工作后,一眨眼就是3个多月,时间过的真快啊!要不是看看时间,我都不敢相信这是真的!这三个月别说更新文章了,我连睡眠都无法保障!!!今天抽点时间更新一篇吧,毕竟这个问题之前遇到过一次。做个详细的复现笔记,方便自己日后入坑!

二、适用人群

本文适用于刚接触git的新手(其实我自己也是新手哈),所以我会尽可能带着看官走一遍流程,复现并提供一种解决问题的方法。

由于平时工作环境都是使用MacBook Pro电脑,所以问题自然也是在Mac中遇到的。下面开始进入正题。

三、生成SSH公钥

我们可以参考官网 生成/添加SSH公钥 中的步骤进行操作。

在mac电脑上打开终端iTerm2工具,然后输入:ssh-keygen -t rsa -C "你在gitee上注册帐号时填写的邮箱" 此时会提示你输入要保存公钥文件的名字。如图:生成sshkey生成sshkey
这里需要注意一下:如果电脑上有多个git仓库时,强烈建议修改一个新的名字。此处我们随便取一个名字:.ssh/id_rsa_demo20191023 注意前面有个回车后提示输入密码,不想输入的再按下回车,此时会提示重复密码,再次回车即可创建成功。如图:生成自定义名称的sshkey文件生成自定义名称的sshkey文件
如果想查看本地刚生成的文件位置,可以输入:open ~/.ssh 即可自动弹出文件目录,如图:在ssh目录中查看生成的文件在ssh目录中查看生成的文件

添加部署公钥

此时接着在命令行工具中输入:cat ~/.ssh/id_rsa_demo20191023.pub 并回车,注意此时多了一个.pub的后缀,此时在命令行工具中有一串代码,我们复制它。然后按照上面的文档提示,进入gitee中的SSH公钥界面,链接:https://gitee.com/profile/sshkeys 然后粘贴刚才复制的公钥粘贴到对应的地方后点击确定。此时可能会提示输入当前gitee帐号的密码验证,输入后点击验证。如图:在gitee上添加刚生成的公钥 在gitee上添加刚生成的公钥
验证成功就有了一条SSH公钥记录。如图:帐号安全验证帐号安全验证

验证公钥

是时候上演bug了,此时我们继续在终端中粘贴:ssh -T git@gitee.com 并回车,如果运气不好的话,看官会遇到此时会看到 git@gitee.com: Permission denied (publickey). 的提示,这表示无权限。如图:Permission denied没有权限Permission-denied没有权限
所以我们可以先解决下文件的权限,在终端中输入:cd ~/.ssh 进入后输入ls -al即可查看文件权限。如图:ls -al查看本地公钥权限ls-al查看本地公钥权限
然后修改文件权限,执行sudo chmod -R 600 文件名并回车,此时再回车即可看到权限修改成功。如图:修改文件权限为600修改文件权限为600
然后再执行ssh -T git@gitee.com 会看到有 Hi xx! You've successfully authenticated, but GITEE.COM does not provide shell access.的字样,这就表示本地的公钥验证成功了。如图:本地验证成功本地验证成功
然后我们就可以愉快的从git上拉项目到本地了。拉取代码参见gitee官网文档:提交第一行代码

四、最后

洗澡睡觉

转载声明:
  若亲想转载本文到其它平台,请务必保留本文出处!
本文链接:/xwzj/2019-10-23/gitee-sshkey.html

若亲不想直保留地址,含蓄保留也行。艺灵不想再看到有人拿我的技术文章到他的地盘或者是其它平台做教(装)程(B)而不留下我的痕迹。文章你可以随便转载,随便修改,但请尊重艺灵的劳动成果!谢谢理解。

亲,扫个码支持一下艺灵呗~
如果您觉得本文的内容对您有所帮助,您可以用支付宝打赏下艺灵哦!

Tag: gitee git仓库 SSH公钥 MacBook Pro git pull git push 读写权限 iTerm2 ssh

上一篇: Vue2x优化篇之图片懒加载插件Vue-Lazyload@1.3.0存在bug及临时解决方法   下一篇: 我花了两个多小时重写代码,只因点了SourceTree中的丢弃

评论区