0

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

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.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí