2016-08-01 72 views
1

我有一个问题:如何在使用和不使用ssh验证的情况下使用两个不同版本库的Git?

我有到项目的工作:

  • 首先是在本地gitlab,需要一个ssh认证
  • 第二个是一个简单的git服务器(没有gitlab或其他工具喜欢它),它不需要ssh认证

一切都很好,当我与gitlab的项目工作,但是当我试图拉,推,取上没有项目gitlab服务器:git bash返回:

关键 '/c/Users/my_user/.ssh/id_rsa' 输入密码:

但是我不需要任何ssh认证!

当我运行的gitlab项目的git远程-v,混帐bash的回报:

$ git的远程-v

起源http://xxxx/yyyy-tools/yyyy-demat-purge.git(取)

起源http://xxxx/yyyy-tools/yyyy-demat-purge.git(推)

当我运行git remote -v作为其他repo(不在gitlab上)时,它返回:

$ git的远程-v

出身的git @ MYIP:/repository/yyyy/yyyy-order-parent.git(取)

出身的git @ MYIP:/库/ YYYY/YYYY-订单parent.git(推)

所以我认为这是一个不远程配置问题...

当我尝试SSH认证的问题绕过访问到存储库不上gitlab,g它庆典的回报:

$ git的远程-v

起源git的@ IP:/repository/yyyy/yyyy-order-parent.git(取)

起源git的@ IP:/库/yyyy/yyyy-order-parent.git(推)

$混帐取起源

关键输入密码 '/c/Users/user/.ssh/id_rsa':

git @ ip的密码:

GitLab:无法找到您正在查找的项目。 致命:无法从远程存储库读取。

请确保您拥有正确的访问权限 并存在存储库。

这里是非gitlab的含量的〜/ .ssh /配置文件

主机DEV_XX1

主机名DEV_XX1

用户gitUser

IdentityFile/home/hostUser/.ssh/id_rsa

IdentitiesOnly是

主机MYIP

用户hostUser

ProxyCommand SSH部署@ MYIP -W%H:%P

我怎样才能解决这个问题呢?我认为它可以存在一个配置解决方案,但哪一个?

谢谢!

+0

Host hostname host_ip HostName host_ip IdentityFile ~/.ssh/privatekey User yourusername 

这种方式,认证将自动照顾您可以添加'混帐远程-v''的'输出对于你的回购? – jibe

+1

您为存储库的每个协议使用哪种协议? [协议](https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols)。根据这可能是一个'ssh'配置的东西或'git'配置的东西^^ – AnimiVulpis

+0

@jibe我刚刚编辑我的帖子:) – jdelagorce

回答

3

问题是,在你的第二个项目中,远程URL可能被设置为ssh url,类似git @ ip/....(运行命令:“git config -l”来查看,支付注意“remote.origin.url =”)

你需要编辑url到使用http或git服务器提供的其他协议的URL。使用以下命令编辑:

git remote set-url origin https://[email protected]/username/project.git 

总之,有两种方法可以解决这个问题。首先,使用“remote set-url”命令作为我上面的答案,将您的网址更改为http。其次,使用SSH认证。你需要生成一个公钥/私钥对,然后将公钥存储到git服务器(如果你的git服务器支持它的话)。最后,创建的〜/ .ssh/config中有以下内容的文件:的

+0

感谢您的回复。正如你在我刚刚编辑的文章中看到的,远程URL是用于gitlab存储库的HTTP,并且正在使用SSH用于其他存储库。 – jdelagorce

+0

但是,有关信息,在我刚刚使用SSH工作而不使用gitlab的存储库之前,它运行良好... – jdelagorce

+0

在输入“输入密钥的密码”/ c/Users的释义之后,我可能需要更多信息来挖掘/my_user/.ssh/id_rsa':“,你能继续拉,推吗? – Klaus

相关问题