2015-05-19 17 views
5

Hiện tại tôi đang sử dụng GitLab làm máy chủ GIT từ xa của mình.
Tôi không gặp vấn đề gì với việc sử dụng tài khoản Gitlab đơn có khóa SSH được gán cho nó.Cách thiết lập hai khóa SSH cho hai tài khoản GitLab và đẩy/kéo bằng cách sử dụng TortoiseGit?

Nhưng bây giờ tôi đã áp dụng một tài khoản Gitlab khác và tôi đang cố gắng sử dụng cùng một khóa SSH cho nó, nhưng tôi không thể thêm khóa vào tài khoản mới này.
Các lỗi như sau khi tôi đã cố gắng để thêm khóa:

chính đã được thực hiện
vân tay đã được thực hiện

Vậy làm thế nào tôi nên sử dụng cùng một khóa để truy cập vào tài khoản Gitlab thứ hai? nếu không thể, tôi nên sử dụng hai khóa cùng một lúc như thế nào.

Nhân tiện, tôi đang sử dụng hệ thống cửa sổ.

Cảm ơn trước !!

============================================== ===================== Cập nhật:

Dưới đây là tệp cấu hình của tôi. Và nó được như sau:

#my primary account 
Host {account1} 
    User git 
    HostName gitlab.com 
    PreferredAuthentications publickey 
    IdentityFile C:/Users/{username}/.ssh/id_rsa1 

#for NPR_HPTG account 
Host {account2} 
    User git 
    HostName gitlab.com 
    PreferredAuthentications publickey 
    IdentityFile C:/Users/{username}/.ssh/id_rsa2 

Và tôi có hai tài khoản Gitlab,

[email protected]:{account_1}/repo1.git 
[email protected]:{account_2}/repo1.git 

Tuy nhiên, tôi không thể truy cập vào các account_2.

Trước đây, trước khi tôi có tài khoản GitLab thứ 2 này, tôi chỉ cần tải khóa ssh lên số account1 mà không cần đặt This. Nhưng bây giờ bằng cách làm theo điều này, vẫn còn, cuối cùng tôi có thể đẩy đến [email protected]:{account_2}/repo1.git. Và tôi đang sử dụng TortoiseGit để đẩy/kéo.

Trả lời

16

Đơn giản chỉ cần tuyên bố mỗi phím ssh tin trong một file %HOME%/.ssh/config:

Host gitlabuser1 
    User git 
    Hostname {hostname} 
    PreferredAuthentications publickey 
    IdentityFile C:/Users/{username}/.ssh/id_rsa1 

Host gitlabuser2 
    User git 
    Hostname {hostname} 
    PreferredAuthentications publickey 
    IdentityFile C:/Users/{username}/.ssh/id_rsa2 

Đó giả thiết lập của bạn các phím ssh là:

%HOME%/.ssh/id_rsa1 ; %HOME%/.ssh/id_rsa1.pub 
%HOME%/.ssh/id_rsa2 ; %HOME%/.ssh/id_rsa2.pub 

Sau đó, bạn có thể sử dụng các url cho clone/push/pull :

gitlabuser1:yourRepo1 
gitlabuser2:yourRepo2 

Đảm bảo phiên CMD của bạn có %HOME% được xác định, thường là %USERPROFILE% (được thực hiện cho bạn với git-cmd.bat)

Bạn có quy trình chi tiết hơn in this blog post.

+0

Tôi có khuynh hướng tin rằng chỉ cần viết 'IdentityFile id_rsa2' nên chọn tệp' id_rsa2' đó từ '~/.ssh /' do đó thực hiện điều Đúng theo cách tự động. Tôi muốn thử xem. – kostix

+0

@kostix Thú vị. Tôi thường luôn chỉ định đường dẫn đầy đủ. – VonC

+0

Định dạng đúng cho hte 'gitlabuser1' là gì? là một cái gì đó như thế này: '[email protected]: my_username'? – 2342G456DI8

Các vấn đề liên quan