首页 > 系统 > Linux > 正文

git多账号登录问题解析

2019-10-26 18:48:43
字体:
来源:转载
供稿:网友

同一服务器,同一托管平台,多个账号问题

1、添加key

我们暂且以oschina为例。为了更好的说明问题,我们在oschina平台分别用账号111新建项目test111和账号222新建项目test222,记得项目私有化哦,不然我们也没啥说的了。

在我们想要把项目test111 clone下来之前,需要先按照下面的步骤设置关联的key

ssh-keygen -t rsa -C "111@163.com" // 邮箱是账号111对应的邮箱

整个过程就回车完事,操作起来那是相当的简单!但是还没完,可能你注意到了,回车的过程中,有一句话是这样提示的:

Your public key has been saved in /root/.ssh/id_rsa.pub.

没错,我们现在打开这个文件

cat /root/.ssh/id_rsa.pub

拷贝文件里面的内容, 然后打开 http://git.oschina.net/keys 这个页面,新建key,把复制的内容粘贴进来就好了。

这样一来,我们就把服务器上面的key跟oschina平台进行了关联。

2、clone项目

接着我们通过git clone命令把test111项目clone下来,记得clone的地址是ssh而不是https哦,这个时候会提示我们输入用户名和密码,其分别是oschina的账号和密码。

如果你手贱是以https的方式进行clone的,可以通过下面的命令重新设置远程仓库地址(没有则可跳过此步骤)

// 移除之前的远程仓库地址git remote remove origin// 新增远程仓库地址为ssh,非httpsgit remote add origin git@git.oschina.net:wwolf/test111.git

3、多账号兼容问题

到这里,对于test111项目pull push操作基本上都是没有问题的了。如果说用户222想在这台服务器上面对项目test222进行管理,我们直接执行git clone git@git.oschina.net:222/test222.git之后,报错了,提示如下:

Access denied.fatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists.

为什么呢?首先最重要的问题肯定是key的问题了!因为我们之前并未层在这台服务器增加key关联到用户222的oschina账号!那我们就按照步骤1重新在服务器上为用户222添加一个key吧,不过需要注意的是,我们的key保存的文件要重命名了,不然可就把用户111创建的key覆盖了!

ssh-keygen -t rsa -C "账号222的邮箱@qq.com"//接下来会提示我们想要把key保存在哪个文件,重新输入文件名即可Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa_2//接着回车回车回车完事,重要的话说三遍!

然后我们登录账号222的oschina账号添加key

但是问题出现了,这个时候我们重新clone test222依旧提示我们没权限,怎么回事???本篇文章的中心主题曝光了!废话了一堆,开始说重点--------------------------

其实这个时候我们clone test222项目时,git是拿默认的id_rsa.pub文件里面的key去对比的,这肯定是有问题的嘛,因为222账号并没有添加这个key!那也就是说我们这里如果clone test222的时候让git拿着id_rsa_2.pub文件里面的key去验证不就完事了么?是的,就是这样!我们看实现步骤:

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表