2015-06-05 90 views
1

我與兩個不同的git存儲庫交互,他們都是GitLab實現。git客戶端忽略SSH配置

因爲我需要使用不同的用戶(和電子郵件)來訪問它們,所以我創建了兩個ssh密鑰:比如說id_rsa_1id_rsa_2。之後,我寫了一個~/.ssh/config文件來指定每個id_rsa文件何時使用。配置文件是:

Host gitlab.host1.com-user1 
    HostName gitlab.host1.com 
    User user1 
    IdentityFile ~/.ssh/id_rsa_1 

Host gitlab.host2.com-user2 
    HostName gitlab.host2.com 
    User user2 
    IdentityFile ~/.ssh/id_rsa_2 

我的問題是我每次使用git時間,即config文件都沒有考慮到。它一直在尋找id_rsa文件。

我的配置文件有什麼問題? 是Host只是一個個人標識符,還是在git搜索密鑰時考慮?

我應該提供哪個用戶? 「git」或我的真實用戶在每臺服務器上註冊?

我的config文件中出現什麼錯誤? 非常感謝您提前。

回答

3

Host條目是一種模式,它與您在查找密鑰時請求的主機相匹配。然後,HostName是主機實際登錄的內容,默認值爲Host。所以,你可以說:

Host gitlab.host1.com 
    User user1 
    IdentityFile ~/.ssh/id_rsa_1 

你也可以指定gitlab.host1.com-user1作爲東道主,當你調用git的,它應該與您當前的配置工作。您可以檢查man ssh_config

+0

非常感謝。它解決了! –