Trong bài viết trước của mình: Hướng dẫn xác thực tự động tài khoản Git, Github, Gitlab. Mình có hướng dẫn cách xác thực tài khoản bằng cách sử dụng SSH Keys. file Private Key id_rsa được lưu ở thư mục ~/.ssh trên Ubuntu. Tuy nhiên, nếu bạn làm nhiều dự án với source code đặt ở nhiều nơi hay nhiều tài khoản GitHub, Gitlab. Khi đó, bạn có rất nhiều file Private Key, bạn ko thể nào cứ copy chúng vào 1 vị trí được.
Vậy hướng dẫn dưới đây, mình sẽ hướng dẫn bạn 5 cách chỉ định file Private Key khi sử dụng lệnh git.
1. Sử dụng ssh-agent
VD sau sử dụng ssh-agent để chỉ định file ~/private-key/id_rsa_1 để thực hiện lệnh git clone source từ GitHub
ssh-agent sh -c 'ssh-add ~/private-key/id_rsa_1; git clone [email protected]:<username>/vinasupport.com.git'
2. Sử dụng GIT_SSH_COMMAND
Từ Git version 2.3.0, bạn có thể sử dụng biên môi trường GIT_SSH_COMMAND để chỉ định file Private Key
GIT_SSH_COMMAND='ssh -i ~/private-key/id_rsa_2 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' git clone [email protected]:<username>/vinasupport.com.git
3. Sử dụng GIT_SSH
Cách sử dụng tương tự GIT_SSH_COMMAND
echo 'ssh -i ~/private-key/id_rsa_3 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $*' > ssh chmod +x ssh GIT_TRACE=1 GIT_SSH='./ssh' git clone [email protected]:<username>/vinasupport.com.git
4. Cấu hình file ~/.ssh/config
Sửa file ~/.ssh/config và thêm nội dung như bên dưới
Host github.com User <username> Hostname github.com IdentityFile ~/private-key/id_rsa_4
5. Cấu hình core.sshCommand
Từ Git version 2.10.0, bạn có thể sử dụng lệnh git config để chỉ định file Private Key
git config core.sshCommand "ssh -i ~/private_key/id_rsa_5 -F /dev/null" git clone [email protected]:<username>/vinasupport.com.git
Nguồn: vinasupport.com