2016-08-01 71 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

相關問題