Tags:

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

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

Để thêm SSH key vào Github 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.

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 Github

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

Lưu ý tên file public key có thể khác tuỳ theo các bạn generate SSH key trước đó mà đổi tên file tương ứng trong lệnh trên.

Bước 2: Sau khi đã có SSH public key, các bạn vào trang Github, click vào avatar và chọn Settings.

Bước 3: Trong thanh Settings, chọn SSH and GPG keys.

Bước 4: Click New SSH key hoặc Add SSH key

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 SSH key để hoàn tất, các bạn có thể bị hỏi password để xác nhận.

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:

$ ssh -T [email protected]
# Attempts to ssh to GitHub

Bạn có thể nhận được một cảnh báo sau

> The authenticity of host 'github.com (IP ADDRESS)' can't be established.
> RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
> Are you sure you want to continue connecting (yes/no)?

yes và Enter để tiếp tục. Nếu thành công thì màn hình console sẽ xuất hiện dòng thông báo sau

 Hi username! You've successfully authenticated, but GitHub does not
> provide shell access.

Nếu không thành công các bạn sẽ nhận được thông báo như sau

Agent admitted failure to sign using the key.
debug1: No more authentication methods to try.
Permission denied (publickey).

Hãy kiểm tra lại các bước mà các bạn đã làm.

Nguồn tham khảo:

https://docs.github.com/en/authentication/connecting-to-github-with-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