2011-08-29 35 views
5

Tôi đang trong tình huống, nơi tôi cần msysgit của tôi để nói chuyện với github bằng các khóa khác nhau. Tuy nhiên git bash khăng khăng sử dụng keyfile có tên id_rsa CHỈ. Nếu tôi làm ssh -vT [email protected] tôi chỉ thấy id_rsa đang được cung cấp.Thêm khóa SSH vĩnh viễn trong các cửa sổ msysgit

Vì vậy, bất cứ khi nào tôi cần phải sử dụng bất kỳ phím nào khác tôi phải làm tất cả điều này,

ssh-agent bash 
ssh-add ~/.ssh/mygithubkey 
git clone [email protected]:myaccount/myrepo.git 

hoặc đổi tên mygithubkey để id_rsa bất cứ khi nào tôi cần nó sao lưu id_rsa gốc vào tập tin khác anotherkey

và tất nhiên nó là một nỗi đau, đặc biệt là vì lịch sử lệnh cũng khác nhau trên các git bash thông thường.

Các câu trả lời khác trong stackoverflow chỉ giúp tôi giải quyết vấn đề trên. Nếu tôi làm

ssh-add ~/.ssh/mygithubkey 

trực tiếp trong git bash của tôi, nó nói không thể kết nối với ssh-agent. Nếu tôi làm

ssh-agent ssh-add ~/.ssh/mygithubkey 
git pull 
ssh -vT [email protected] 

trực tiếp trong bash git của tôi, nó nói cho phép từ chối, có vẻ như ssh-add đã không thực sự thêm khóa vĩnh viễn! Và khóa bổ sung không được cung cấp trong khi xem các thông báo gỡ lỗi ở chế độ tiết.

Có cách nào để thêm vĩnh viễn danh sách các khóa ssh để cung cấp, khi sshing vào github? Im một noob trong cấu hình ssh, vì vậy xin vui lòng được tiết trong câu trả lời.

+0

Tại sao bạn cần nhiều khóa? Một chìa khóa nên là tất cả những gì bạn cần. – Tekkub

+0

Bạn nói đúng, tôi có thể quản lý chỉ bằng một khóa, nhưng cũng giống như một câu hỏi học thuật, có thể mọi người ở đây cố gắng trả lời không ?? – Zasz

+1

Có thể, nhưng một nỗi đau lớn trong ass và thực sự không đáng làm: http://help.github.com/multiple-ssh-keys/ – Tekkub

Trả lời

3

Tôi muốn đề xuất sử dụng tệp ~/.ssh/config tương tự như this answer. Một cái gì đó như:

Host github1 
    User git 
    Hostname github.com 
    IdentityFile ~/.ssh/mygithubkey 

Host github2 
    User git 
    Hostname github.com 
    IdentityFile ~/.ssh/myothergithubkey 

Bằng cách đó bạn có thể dễ dàng chuyển đổi các phím bằng cách gõ hoặc ssh github1 hoặc ssh github2 để kết nối.

+0

Nó sẽ ở đâu trên Windows? – CMCDragonkai

+2

Dấu ngã ('~') là một trình giữ chỗ cho thư mục chính của người dùng hiện tại, tức là sự kết hợp của '% HOMEDRIVE %% HOMEPATH%' trên các điểm Windows đến. Bắt đầu với Windows Vista, điều này sẽ giống như 'C: \ Users \ ', vì vậy tệp cấu hình sẽ là 'C: \ Users \ \ .ssh \ config'. – sschuberth

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