git配置了ssh还是没权限_git配置ssh服务

create by db on 2020-2-16 18:49:26

Recently revised in 2020-2-16 18:49:31

Hello 小伙伴们,如果觉得本文还不错,麻烦点个赞或者给个 star,你们的赞和 star 是我前进的动力!GitHub 地址

前言

在管理Git项目上,很多时候都是直接使用https url克隆到本地,当然也有有些人使用SSH url克隆到本地。

这两种方式的主要区别在于:

使用https url克隆对初学者来说会比较方便,复制https url然后到git Bash里面直接用clone命令克隆到本地就好了,但是每次fetch和push代码都需要输入账号和密码,这也是https方式的麻烦之处。

而使用SSH url克隆却需要在克隆之前先配置和添加好SSH key,因此,如果你想要使用SSH url克隆的话,你必须是这个项目的拥有者。否则你是无法添加SSH key的,另外ssh默认是每次fetch和push代码都不需要输入账号和密码,如果你想要每次都输入账号密码才能进行fetch和push也可以另外进行设置。

下面主要是讲述如何配置使用ssh方式来提交和克隆代码。

正文

配置本机ssh

一、确定的是你的电脑上是安装过Git

打开cmd,查看git版本:

输入:git --version

显示:git version 2.20.1.windows.1

复制代码

如果显示类似git version 2.20.1.windows.1的Git版本,说明你的电脑是安装过Git的;否则请左转打开Git的正确姿势,把Git安装完了再来,不送。

二、查看是否配置了git用户名和邮箱

输入:git config user.name

显示:用户名

输入:git config user.email

显示用户邮箱

复制代码

如果没有配置,那么需要配置用户名和邮箱:

输入:git config --global user.name "xxx"

输入:git config --global user.email "xxx"

复制代码

三、查看是否配置过SSH Key(密钥)

输入:cd ~/.ssh

输入:ls,

复制代码

查看该文件下的文件,看是否存在 id_isa 和 id_isa.pub 文件(也可以是别的文件名,只要 yourName 和 yourName.pub 成对存在就可以),如果存在的话,证明已经存在 ssh key了,可以直接跳过4、生成SSH Key这一步骤,

四、生成SSH Key(密钥)

输入: ssh-keygen -t rsa -C "你的邮箱"

复制代码

此处会提示Enter file in which to save the key (/Users/shutong/.ssh/id_rsa):这样一段内容,让我们输入文件名,如果第3步的文件存在的话最好在这里修改一下文件名以防覆盖之前的内容;如果第3步的文件不存在的话则直接按enter键就好了。

之后会有提示你是否需要设置密码,如果设置了每次使用Git都会用到密码,一般都是直接不写为空,直接enter就好了。

上述操作执行完毕后,在~/.ssh/目录会生成XXX-rsa(私钥)和XXX-rsa.pub(公钥),它们默认的存储路径是:

C:\Users\Administrator.ssh

注意

个人建议生成的rsa最好单独命名不要使用默认名称,因为有可能sshkey可能会用在多个地方,一不小心就可能被覆盖然后导致git功能异常

五、添加公钥到你的远程仓库(github)

1 、查看你生成的公钥:

输入:cat ~/.ssh/id_rsa.pub

复制代码

这里会把公钥显示出来,我们把这段内容复制出来。

2、添加公钥到远程仓库:

登陆你的github帐户 -> 点击你的头像,然后点击 Settings -> 左栏点击 SSH and GPG keys -> 点击 New SSH key

然后将复制的公钥内容,粘贴进Key文本域内。 title域,自己随便起个名字。

点击 Add SSH key。

2、查看 ssh文件是否配置成功

输入: ssh -T git@github.com

输出: Hi danygitgit! You've successfully authenticated, but GitHub does not provide shell access.复制代码

恭喜你,你的设置已经成功了。

六、修改git的remote url

如果之前添加的是HTTPS协议的github仓库地址,那么每次push或者pull仍然需要密码,所以,我们需要将其修改为ssh协议的,这样,就不需要这么麻烦了。

那么我们应该怎么办呢?

1、查看当前的 remote url

首先进入本地仓库,右键 -> Git Bash Here

输入: git remote -v

输出: origin https://github.com/danygitgit/document-library.git (fetch)

输出: origin https://github.com/danygitgit/document-library.git (push)

复制代码

如果是以上的结果那么说明此项目是使用https协议进行访问的(如果地址是git开头则表示是git协议)

2、复制远程仓库的ssh链接

登陆你的远程仓库,在上面可以看到你的ssh协议相应的url,类似:

git@github.com:danygitgit/document-library.git

复制此ssh链接。

2、修改git的remote url

方法有三种:

修改命令

git remote origin set-url [url]

先删后加

git remote rm origin

git remote add origin [url]

直接修改config文件

找到仓库下 .git 文件夹下的config文件,打开,可以看到以下内容

[core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true[remote "origin"] url =https://github.com/danygitgit/document-library.git fetch = +refs/heads/:refs/remotes/origin/[branch "master"] remote = origin merge = refs/heads/master

将文件中的 url =https://github.com/danygitgit/document-library.git更改为 url = git@github.com:danygitgit/document-library.git 即可。

修改后的文件如下

[core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true[remote "origin"] url = git@github.com:danygitgit/document-library.git fetch = +refs/heads/:refs/remotes/origin/[branch "master"] remote = origin merge = refs/heads/master

以后,不管是push还是pull,你都不需要再提交密码了。

七、Sourcetree配置ssh密钥

SourceTree是一款git管理可视化工具,就不需要繁琐的敲打命令行了。个人比较推荐,无论在windows环境还是mac的os环境。官网链接

关于SourceTree的安装及配置就不赘述了,具体请参考

总结

磨刀不误砍柴工。勇于尝试,善于总结。开启你的Git踩坑之旅吧!

路漫漫其修远兮,希望Git可以帮我们记录每一个脚印,每一步成长。与诸君共勉。

祝大家2020更上一层楼!

后记:Hello 小伙伴们,如果觉得本文还不错,记得点个赞或者给个 star,你们的赞和 star 是我编写更多更丰富文章的动力!GitHub 地址

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值