- vừa được xem lúc

Hướng dẫn thêm khóa SSH vào GitHub (Windows, macOS, Linux)

0 0 3

Người đăng: Phan Nguyễn Mai Phương

Theo Viblo Asia

Hướng dẫn này giúp bạn tạo và thêm khóa SSH vào tài khoản GitHub để có thể truy cập kho lưu trữ một cách an toàn và không cần nhập mật khẩu.

Phiên bản cho macOS

Bước 1: Tạo khóa SSH

  1. Mở ứng dụng Terminal (Applications > Utilities > Terminal).

  2. Chạy lệnh sau để tạo khóa Ed25519 (khuyến nghị):

    ssh-keygen -t ed25519 -C "your_email@example.com"
    
    • Thay "your_email@example.com" bằng địa chỉ email GitHub của bạn.
  3. Khi được hỏi nơi lưu khóa, nhấn Enter để chọn mặc định (~/.ssh/id_ed25519).

  4. Quan trọng: Nên tạo mật khẩu (passphrase) cho khóa SSH để tăng cường bảo mật. Nếu không muốn, nhấn Enter hai lần.

Bước 2: Sao chép khóa công khai

  1. Trong Terminal, chạy lệnh sau để sao chép khóa công khai vào clipboard:

    pbcopy < ~/.ssh/id_ed25519.pub
    

Bước 3: Thêm khóa vào GitHub

  1. Đăng nhập vào GitHub trên trình duyệt.
  2. Đi tới Settings -> SSH and GPG keys.
  3. Nhấp vào New SSH key hoặc Add SSH key.
  4. Nhập Title (ví dụ: "MacBook của tôi").
  5. Dán khóa công khai từ clipboard vào trường Key.
  6. Nhấp Add SSH key.

Bước 4: Kiểm tra kết nối SSH

  1. Trong Terminal, chạy lệnh:

    ssh -T git@github.com
    
  2. Lần đầu kết nối, xác nhận dấu vân tay (fingerprint) của GitHub.

  3. Nếu thành công, bạn sẽ thấy thông báo:

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

Khắc phục lỗi "Permission denied (publickey)" trên macOS

Nếu bạn gặp lỗi Permission denied (publickey) sau khi thử kết nối, hãy kiểm tra các bước sau:

  1. Đảm bảo khóa riêng tư tồn tại: Kiểm tra xem tệp khóa riêng tư (~/.ssh/id_ed25519 hoặc đường dẫn bạn đã chọn) có thực sự tồn tại trên máy của bạn không.

    ls -al ~/.ssh/id_ed25519
    
  2. Kiểm tra quyền truy cập khóa riêng tư: Đảm bảo rằng chỉ bạn mới có quyền đọc và ghi vào khóa riêng tư (quyền 600).

    chmod 600 ~/.ssh/id_ed25519
    
  3. Cấu hình SSH config (khuyến nghị): Tạo hoặc chỉnh sửa tệp ~/.ssh/config để chỉ định khóa SSH cho GitHub.

    nano ~/.ssh/config
    

    Thêm hoặc sửa đổi cấu hình sau:

    Host github.com Hostname github.com User git IdentityFile ~/.ssh/id_ed25519 PubkeyAcceptedKeyTypes +ssh-ed25519
    

    Lưu và đóng tệp. Sau đó thử lại kết nối.

  4. Kiểm tra khóa công khai trên GitHub: Đảm bảo rằng khóa công khai tương ứng với khóa riêng tư của bạn đã được thêm chính xác vào phần SSH keys trong cài đặt GitHub.

Phiên bản cho Windows

Bước 1: Tạo khóa SSH

  1. Mở Git Bash (thường được cài đặt cùng với Git for Windows).

  2. Chạy lệnh sau để tạo khóa Ed25519 (khuyến nghị):

    ssh-keygen -t ed25519 -C "your_email@example.com"
    
    • Thay "your_email@example.com" bằng địa chỉ email GitHub của bạn.
  3. Khi được hỏi nơi lưu khóa, nhấn Enter để chọn mặc định (C:\Users\YourUsername\.ssh\id_ed25519). Thay YourUsername bằng tên người dùng Windows của bạn.

  4. Quan trọng: Nên tạo mật khẩu (passphrase) cho khóa SSH để tăng cường bảo mật. Nếu không muốn, nhấn Enter hai lần.

Bước 2: Sao chép khóa công khai

  1. Trong Git Bash, chạy lệnh sau để hiển thị khóa công khai:

    cat ~/.ssh/id_ed25519.pub
    
  2. Sao chép toàn bộ nội dung khóa công khai hiển thị trên màn hình.

Bước 3: Thêm khóa vào GitHub

  1. Đăng nhập vào GitHub trên trình duyệt.
  2. Đi tới Settings -> SSH and GPG keys.
  3. Nhấp vào New SSH key hoặc Add SSH key.
  4. Nhập Title (ví dụ: "Máy tính Windows của tôi").
  5. Dán khóa công khai đã sao chép vào trường Key.
  6. Nhấp Add SSH key.

Bước 4: Kiểm tra kết nối SSH

  1. Trong Git Bash, chạy lệnh:

    ssh -T git@github.com
    
  2. Lần đầu kết nối, xác nhận dấu vân tay (fingerprint) của GitHub bằng cách nhập yes.

  3. Nếu thành công, bạn sẽ thấy thông báo:

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

Khắc phục lỗi "Permission denied (publickey)" trên Windows

Nếu bạn gặp lỗi Permission denied (publickey) sau khi thử kết nối, hãy kiểm tra các bước sau:

  1. Đảm bảo khóa riêng tư tồn tại: Kiểm tra xem tệp khóa riêng tư (C:\Users\YourUsername\.ssh\id_ed25519 hoặc đường dẫn bạn đã chọn) có thực sự tồn tại trên máy của bạn không. Sử dụng File Explorer để kiểm tra.

  2. Kiểm tra quyền truy cập khóa riêng tư: Đảm bảo rằng chỉ tài khoản người dùng của bạn mới có quyền truy cập vào tệp khóa riêng tư.

  3. Cấu hình SSH config (tùy chọn): Bạn có thể tạo hoặc chỉnh sửa tệp config trong thư mục ~/.ssh/ (nếu chưa có, hãy tạo một tệp văn bản tên config không có đuôi). Thêm cấu hình sau:

    Host github.com Hostname github.com User git IdentityFile ~/.ssh/id_ed25519 PubkeyAcceptedKeyTypes +ssh-ed25519
    

    Lưu tệp và thử lại kết nối.

  4. Kiểm tra khóa công khai trên GitHub: Đảm bảo rằng khóa công khai tương ứng với khóa riêng tư của bạn đã được thêm chính xác vào phần SSH keys trong cài đặt GitHub.

Phiên bản cho Linux

Bước 1: Tạo khóa SSH

  1. Mở Terminal.

  2. Chạy lệnh sau để tạo khóa Ed25519 (khuyến nghị):

    ssh-keygen -t ed25519 -C "your_email@example.com"
    
    • Thay "your_email@example.com" bằng địa chỉ email GitHub của bạn.
  3. Khi được hỏi nơi lưu khóa, nhấn Enter để chọn mặc định (~/.ssh/id_ed25519).

  4. Quan trọng: Nên tạo mật khẩu (passphrase) cho khóa SSH để tăng cường bảo mật. Nếu không muốn, nhấn Enter hai lần.

Bước 2: Sao chép khóa công khai

  1. Trong Terminal, bạn có thể sử dụng một trong các lệnh sau để sao chép khóa công khai vào clipboard (tùy thuộc vào môi trường desktop của bạn):

    • Sử dụng xclip:

      xclip -sel clip < ~/.ssh/id_ed25519.pub
      

      (Bạn có thể cần cài đặt xclip: sudo apt-get install xclip hoặc sudo yum install xclip)

    • Sử dụng xsel:

      xsel --clipboard --input < ~/.ssh/id_ed25519.pub
      

      (Bạn có thể cần cài đặt xsel: sudo apt-get install xsel hoặc sudo yum install xsel)

    • Hoặc, bạn có thể hiển thị và sao chép thủ công:

      cat ~/.ssh/id_ed25519.pub
      

      Sau đó, chọn và sao chép nội dung khóa công khai.

Bước 3: Thêm khóa vào GitHub

  1. Đăng nhập vào GitHub trên trình duyệt.
  2. Đi tới Settings -> SSH and GPG keys.
  3. Nhấp vào New SSH key hoặc Add SSH key.
  4. Nhập Title (ví dụ: "Máy Linux của tôi").
  5. Dán khóa công khai từ clipboard vào trường Key.
  6. Nhấp Add SSH key.

Bước 4: Kiểm tra kết nối SSH

  1. Trong Terminal, chạy lệnh:

    ssh -T git@github.com
    
  2. Lần đầu kết nối, xác nhận dấu vân tay (fingerprint) của GitHub bằng cách nhập yes.

  3. Nếu thành công, bạn sẽ thấy thông báo:

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

Khắc phục lỗi "Permission denied (publickey)" trên Linux

Nếu bạn gặp lỗi Permission denied (publickey) sau khi thử kết nối, hãy kiểm tra các bước sau:

  1. Đảm bảo khóa riêng tư tồn tại: Kiểm tra xem tệp khóa riêng tư (~/.ssh/id_ed25519 hoặc đường dẫn bạn đã chọn) có thực sự tồn tại trên máy của bạn không.

    ls -al ~/.ssh/id_ed25519
    
  2. Kiểm tra quyền truy cập khóa riêng tư: Đảm bảo rằng chỉ bạn mới có quyền đọc và ghi vào khóa riêng tư (quyền 600).

    chmod 600 ~/.ssh/id_ed25519
    
  3. Cấu hình SSH config (khuyến nghị): Tạo hoặc chỉnh sửa tệp ~/.ssh/config để chỉ định khóa SSH cho GitHub.

    nano ~/.ssh/config
    

    Thêm hoặc sửa đổi cấu hình sau:

    Host github.com Hostname github.com User git IdentityFile ~/.ssh/id_ed25519 PubkeyAcceptedKeyTypes +ssh-ed25519
    

    Lưu và đóng tệp. Sau đó thử lại kết nối.

  4. Kiểm tra khóa công khai trên GitHub: Đảm bảo rằng khóa công khai tương ứng với khóa riêng tư của bạn đã được thêm chính xác vào phần SSH keys trong cài đặt GitHub.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Hướng dẫn cài đặt Fail2Ban bảo vệ SSH

Nếu bạn đã từng làm việc với LINUX SERVER thì chắc chắn bạn sẽ biết SSH để truy cập vào server. Thường thì sẽ SSH sẽ sử dụng port 22 để kết nối.

0 0 37

- vừa được xem lúc

SSH - How it works

"Em ơi gửi anh public key để anh add vào server". Các bạn thấy câu này có quen không Sau khi key được add vào server, chúng ta có thể "lên" server và thực hiện các tác vụ trên đó.

0 0 47

- vừa được xem lúc

Kết nối với tài khoản github thông qua giao thức ssh

Một lập trình viên mới vào nghề hay mới sử dụng github gitlab với mỗi lần thao tác với repository như clone code, pull, push thì sẽ phải nhập tài khoản và mật khẩu để github xác thực, việc này lặp đi

0 0 42

- vừa được xem lúc

Git: Dùng HTTPS hay SSH?

Nếu bạn là một người mới dùng Git, khi clone một repository sẽ có 2 lựa chọn: Clone with HTTPS hay Clone with SSH. Các bạn sẽ phân vân không biết nên dùng cái nào vì đôi khi, dùng link nào cũng clone

0 0 68

- vừa được xem lúc

MOSH: Kẻ hủy diệt SSH

Lời nói đầu. Lời đầu tiên xin được xin chào cả nhà, đã lâu lắm rồi mình không viết blog nay May Fest mà người iu mình thích cái áo viblo quá nên xin phép nổ phát súng trên Viblo về Mosh - thứ khá hay

0 0 140

- vừa được xem lúc

Bạn không hiểu SSH?

Thế thì bạn ơi, ngồi lại đây với mình một chút, để mình kể chuyện cho mà nghe . Bạn - một coder pro, dùng github, đang clone pull push project bằng HTTPS rất ghê.

0 0 60