Tiêu đề này cũng đủ để nói lên gần hết rồi các bác nhể. Cũng lâu ghê rồi mình không làm cái bài viết nào. Haizz tiện thể hôm nay vừa config cho cái vps vài cái tài khoản git để sử dụng mình cũng note lại để chia sẻ với mọi người cách config nhiều user git trên 1 máy tính cá nhân. Để nói về git thì chắc thôi các bạn search dùm mình nhé. Là 1 dev der việc dùng git là ko thể thiếu, chế nào chỉ sài SVN thì thôi không nói chuyện nhé 😁. Tuy nhiên không phải lúc nào bạn cũng chỉ dùng bất kỳ 1 tài khoản git để dùng trên chiếc máy tinh của mình. Ở bài viết này mình sẽ hướng dẫn các bạn cấu hình apply nhiều tài khoản git trên 1 máy tính cá nhân. Đương nhiên là cách cấu hình này sẽ là cấu hình với ssh key để kết nối git local tơi server source git. (Bài viết này mặc định các bạn đã biết sử dụng git và ssh-key rùi nhé.)
1. Chuẩn bị
Mình sẽ sử dụng 2 server git chinh và ở đây là github và bitbucket. Môi trường sẽ là mac và linux. Tài khoản mình sẽ có 3 tài khoản, 2 tài khoản bitbucket và 1 tài khoản github. Bạn cũng chuẩn bị luôn 3 project tương ứng để test tương ứng với 3 tài khoản.
Giả sử mình có các tài khoản + server git + project tương ứng như này:
Server Bitbucket- User: nguyenmanh9x / email: nguyenmanh9x@gmail.com | project sample1
- User: manh.nguyen / email: manh.nguyen@gmail.com | project sample2
- User: manhhip / email: nguyenmanh9x@gmail.com | project sample 3
=> Tương ứng với 3 tài khoản trên các bạn sẽ phải tạo 3 bộ ssh-key tương ứng để cấu hình ssh tới server git (). Trên màn hình command bạn làm các thao tác sau
- cd ~/.ssh
- ssh-keygen -t –rsa –C “option_email”
(option_email bạn có thể điền email account của mình hoặc tùy ý hoặc ko điền cũng được). => Nhập tên cho bộ ssh-key tương ứng. Gợi ý là bạn lên đặt gần giống user git để sau này có nhìn lại key cũng phân biệt cho dễ. => Lặp lại thao tác này 3 lần để có 3 bộ key khác nhau. Sau khi hoàn tất mình có 3 bộ key (private và public) như thế này
- nguyenmanh9x/nguyenmanh9x.pub
- manhnguyenkey/ manhnguyenkey.pub
- manhhipkey/ manhhipkey
2. Cấu hình với các hệ điều hành tương ứng
Vơi Mac OSX:
Bạn cần tạo file config trong thư mục ~/.ssh.. tiến hành => nano ~/.ssh/config. Thêm vào file này thông tin như sau
Host bitbucket.orgHostName bitbucket.orgUser nguyenmanh9xIdentityFile ~/.ssh/nguyenmanh9xkeyHost bitbucket.orgHostName bitbucket.orgUser manh.nguyenIdentityFile ~/.ssh/manhnguyenkeyHost github.comUser manhhipIdentityFile ~/.ssh/manhhipkey
Save lại file config. Vẫn chưa xong bạn cần phải add các file private key để đảm bảo các file này được lưu trữ lại. Trên cửa số dòng lệnh bạn thực hiện các lệnh
- cd ~/.ssh
- eval `ssh-agent -s`
- sshadd nguyenmanh9xkey && sshadd manhnguyenkey && sshadd manhhipkey
Bước cuối cùng là thử clone các repo thui nào. Lên 3 sever repo git tương ứng của bạn, chọn link để clone repo, thay vì clone bằng https thì giờ bạn clone repo với ssh. Sau khi lấy hoàn chỉnh mình có 3 link repo như sau.
- git@bitbucket.org:masterjsteam/sample1.git
- git@bitbucket.org:demo_team/sample2.git
- git@github.com:hard_team/sample3.git
(Các phần team kia chỉ là các team tương ứng với project của mình thôi, khi bạn lấy về bạn cũng sẽ có team tương ứng mà bạn tạo)
Chưa vội clone với các link này bạn cần thay đổi lại 1 chút các đường link ở trên bằng cách thay tiền tố git ở trước bằng user tương ướng với tài khoản git của bạn. Các link của mình sau thay thế sẽ trông giống như thế này
- nguyenmanh9x@bitbucket.org:masterjsteam/sample1.git
- manh.nguyen@bitbucket.org:demo_team/sample2.git
- manhhip@github.com:hard_team/sample3.git
Giờ hãy thử clone 1 repo để test với ssh-key vừa add và config xem sao các bạn nhé
Với linux:
Linux cách config về cơ bản khá giống với trên mac.. có điều hơi khác 1 chút về cách điền thông tin ở file config và link remote origin của nó: (hiện tại mình config như trên môi trường mac nhưng mỗi lần thoát khỏi cửa sổ control thì phải ssh-add lại key đó ms sử dụng được, ko rõ do làm sao lên dưới đây là cách config lại của mình và đã apply thành công, các bác có ghé hay đi qua cho mình vài lời tư vấn vơi nhé :D)
Vẫn là các thông tin như trên, bạn edit config và thêm nội dung file config mới như sau
Host bitbucket-acc1HostName bitbucket.orgPreferredAuthentications publickeyIdentityFile ~/.ssh/nguyenmanh9xkeyHost bitbucket-acc2HostName bitbucket.orgPreferredAuthentications publickeyIdentityFile ~/.ssh/manhnguyenkeyHost github-acc1HostName github.comPreferredAuthentications publickeyIdentityFile ~/.ssh/manhhipkey
- git@bitbucket-acc1:masterjsteam/sample1.git
- git@bitbucket-acc2:demo_team/sample2.git
- git@github-acc1:hard_team/sample3.git
Ok giờ bạn hay thử clone project với các remote như này coi sao nhé
Vậy là với vài thao tác cơ bản bạn đã có thể thêm nhiều tài khoản git vào hệ thống và sử dụng ssh-key để thao tác với nhiều repo git thuộc các tài khoản khác nhau rồi. Chia sẻ cách mà bạn thực hiện cấu hình config để mọi người cùng biết thêm nhé :D.