Tags:

Cách thêm SSH key vào Gitlab

Bằng cách sử dụng SSH protocol bạn có thể kết nối đến các Gitlab mà không cần phải cung cấp thông tin đăng nhập (username, password).

Để thêm SSH key vào Gitlab trước tiên các bạn cần phải đảm bảo rằng mình đã generate SSH key và thêm vào ssh-agent.

Ngoài ra các bạn cũng cần phải đảm bảo:

  • OpenSSH client được cài đặt sẵn trên GNU/Linux, macOS,  và Windows 10
  • SSH version 6.5 trở lên

Các loại SSH key Gitlab hỗ trợ:

  • ED25519
  • RSA
  • DSA (Deprecated in GitLab 11.0.)
  • ECDSA

Kiểm tra SSH key

Trước khi generate một SSH mới thì các bạn cần kiểm tra xem trên máy đã tồn tại một SSH key nào hay chưa, nếu đã có SSH key sẵn thì các bạn không cần generate một SSH key mới.

Bước 1: Mở terminal lên và gõ lệnh, lưu ý đối với Windows các bạn cần sử dụng Git Bash để thực hiện

$ ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist

Một danh sách các file sẽ hiện lên, kiểm tra xem đã có các SSH key hay chưa, mặc định key sẽ có tên mặc định như sau:

  • id_rsa.pub
  • id_ecdsa.pub
  • id_ed25519.pub

Ngược lại, nếu bạn nhận được một error ~/.ssh doesn’t exist thì có nghĩa là máy tính bạn chưa có SSH key, và bạn sẽ cần phải generate một SSH key mới trước khi thêm vào Github.

Cách generate SSH key

Bước 1: Mở terminal lên và thực thi theo thứ tự sau, lưu ý trên Windows các bạn cần phải sử dụng Gitbash để thực hiện.

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Lệnh này sẽ tạo ra một SSH key tương ứng với email mà bạn đã cung cấp ở câu lệnh trên.

Bước 2: Sau đó bạn sẽ được hỏi “Enter a file in which to save the key.” Bạn có thể điền vào vị trí mà bạn muốn lưu file hoặc enter để đặt nó tại vị trí mặc định.

> Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

Bước 3: Tiếp theo bạn sẽ được hỏi về secure passphrase, passphrase được dùng để tạo thêm một lớp bảo mật bổ sung cho SSH và được hỏi bất cứ khi SSH được sử dụng. Nếu ai đó truy cập vào máy tính chứa private key của bạn thì họ có thể truy cập được các ssh server mà máy tính đang liên kết đến, passphrase giúp các bạn ngăn chặn việc này xảy ra khi kẻ xấu sẽ không biết chính xác passphrase là gì.

> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

Bây giờ, SSH key đã được tạo trên máy của bạn và đặt nó tại ví trí mà bạn đã chỉ định trước đó hoặc tại vị trí mặc định nếu bạn không chỉ định một vị trí cụ thể.

Bước 4: Thêm SSH key vào ssh-agent

SSH-Agent là một công cụ khác của SSH chịu trách nhiệm lưu trữ và bảo vệ private key. Trước khi add SSH key vào ssh-agent hãy đảm bảo là nó đang hoạt động 

$ eval "$(ssh-agent -s)"
> Agent pid 59566

Sau khi đã đảm bảo ssh-agent đang hoạt động, sử dụng lệnh sau để thên SSH key mới tạo vào ssh-agent 

$ ssh-add ~/.ssh/id_rsa

Cách thêm SSH key vào Gitlab

Sau khi đảm bảo máy tính của bạn đã có cặp ssh key, các bạn có thể thực hiện các bước sau để thêm SSH key vào Github.

Bước 1: Copy public key vào clipboard

# For mac
$ pbcopy < ~/.ssh/id_rsa.pub


# For Windows
$ clip < ~/.ssh/id_rsa.pub


# For Linux
$ cat ~/.ssh/id_rsa.pub
#  Copy nội dung của id_rsa.pub được xuất ra trên màn hình console

Bước 2: Login vào Gitlab account

Bước 3: Click vào Avatar và chọn Preferences

Bước 4: Ở thanh menu bên trái chọn SSH Keys

Bước 5: Điền các thông tin cơ bản cho Title, bạn có thể nhập bất kỳ thông tin gì miễn là nó gợi nó. Sau đó paste public key đã được copy vào clipboard trước đó vào mục Key.

Bước 6: Click Add key để hoàn tất.

Kiểm tra kết nối SSH

Sau khi thiết lập SSH thành công các bạn có thể kiểm tra xem nó đã hoạt động chưa bằng cách sử dụng lệnh CMD. Lưu ý nếu bạn sử dụng Gitlab instance URL thì phải thay thế lại [email protected] cho tương ứng với URL của bạn.

ssh -T [email protected]

Nếu lần đầu tiên bạn kết nối SSH đến Gitlab bạn sẽ thấy thông báo sau

The authenticity of host 'gitlab.example.com (35.231.145.151)' can't be established.
ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitlab.example.com' (ECDSA) to the list of known hosts.

Chọn yes và Enter để tiếp tục. Chạy lại lệnh, bạn sẽ nhận được tin nhắn Welcome to GitLab, @username

ssh -T [email protected]

Nguồn tham khảo: 

https://docs.gitlab.com/ee/ssh/

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x