0

GitKraken Desktop (UI) Bài học 2: Tích hợp GitHub, GitLab, Bitbucket và tự động hóa quản lý SSH Keys không cần gõ lệnh

Cơn ác mộng quen thuộc của hầu hết lập trình viên mỗi khi cài lại máy hoặc nhận laptop mới ở công ty là quy trình thiết lập SSH Key: mở Terminal gõ ssh-keygen -t ed25519, lục tìm file .pub, copy nội dung dán lên trình duyệt, rồi cấu hình file ~/.ssh/config sao cho không bị đụng độ giữa tài khoản GitLab công ty và GitHub cá nhân. Chỉ cần sai một quyền truy cập file (chmod 600) hay quên ssh-add là màn hình lập tức văng lỗi kinh điển: Permission denied (publickey).

Với GitKraken Desktop, toàn bộ quy trình phức tạp đó được rút gọn lại thành đúng 2 cú click chuột. Trong Bài học 2 của chuỗi 30 bài làm chủ GitKraken UI, chúng ta sẽ kết nối trực tiếp ứng dụng với các nền tảng lưu trữ Git phổ biến và để GitKraken tự động sinh, đẩy (upload) và quản lý SSH Keys từ A đến Z.

1. Tại sao nên dùng Tích hợp (Integrations) thay vì kết nối thủ công?

Khi bạn kết nối tài khoản GitHub, GitLab, hoặc Bitbucket thông qua mục Integrations của GitKraken thay vì chỉ dùng URL thông thường, bạn sẽ mở khóa được 4 đặc quyền lớn:

  • Tự động hóa SSH Key 100%: GitKraken tự tạo cặp khóa Public/Private chuẩn bảo mật dưới máy và dùng API đẩy thẳng Public Key lên tài khoản Git của bạn mà không cần mở trình duyệt copy-paste.

  • Clone dự án từ danh sách thả xuống: Không cần lên web lấy link repo, bạn có thể tìm kiếm toàn bộ các dự án mình có quyền truy cập ngay trong cửa sổ Clone của GitKraken.

  • Tạo và duyệt Pull Request / Merge Request ngay trên UI: Kéo - thả nhánh để tạo PR/MR, chọn người review (Assignee/Reviewer) mà không cần rời khỏi ứng dụng.

  • Tạo Remote Repository mới từ Local: Khởi tạo code dưới máy xong có thể bấm đẩy thẳng lên tạo repo Private/Public mới trên GitHub/GitLab.

2. Kết nối GitHub, GitLab, Bitbucket & Tự động sinh SSH Key

Để bắt đầu, bạn mở bảng điều khiển cài đặt bằng cách nhấn vào biểu tượng Bánh răng (Preferences) ở góc trên bên phải (phím tắt Ctrl + , trên Windows/Linux hoặc Cmd + , trên macOS), sau đó chọn mục Integrations ở thanh menu bên trái.

Dưới đây là giao diện thiết lập tích hợp (Integration) trong GitKraken — nơi bạn chỉ cần bấm một nút duy nhất để ứng dụng tự động khởi tạo cặp khóa SSH và đồng bộ thẳng lên máy chủ Git:

image.png

2.1. Kết nối với GitHub.com và Bitbucket.org (OAuth 1-Click)

Quy trình cho GitHub và Bitbucket hoàn toàn tương tự nhau thông qua cơ chế xác thực OAuth an toàn:

  1. Tại mục Integrations, chọn GitHub.com (hoặc Bitbucket.org).

  2. Nhấn nút Connect to GitHub (hoặc Connect to Bitbucket). Trình duyệt web sẽ tự động bật lên yêu cầu bạn cấp quyền (Authorize) cho GitKraken.

  3. Sau khi bấm xác nhận trên trình duyệt, quay lại cửa sổ GitKraken, bạn sẽ thấy trạng thái chuyển sang Connected.

  4. Ngay bên dưới phần trạng thái kết nối, nhấn vào nút xanh lá: Generate SSH key and add to GitHub (hoặc Bitbucket).

Ngay tại khoảnh khắc bạn bấm nút này, GitKraken sẽ tự động sinh một cặp khóa RSA/Ed25519 lưu vào thư mục ~/.ssh/ trên máy bạn, đồng thời gọi API gắn khóa Public đó vào phần SSH and GPG keys trên tài khoản GitHub/Bitbucket với tên định danh rõ ràng (ví dụ: GitKraken - TenMayTinhCuaBan).

2.2. Kết nối với GitLab.com hoặc GitLab Self-Managed (Server nội bộ công ty)

Đối với anh em làm việc tại các doanh nghiệp tự host máy chủ GitLab riêng (ví dụ: [https://gitlab.tencongty.vn](https://gitlab.tencongty.vn)), tính năng GitLab Self-Managed của GitKraken là một điểm cộng cực kỳ đáng giá.

  1. Trong menu Integrations, chọn GitLab.com (nếu dùng bản đám mây) hoặc GitLab Self-Managed (nếu dùng server riêng của công ty).

  2. Nhập đường dẫn Host Domain của công ty bạn (nếu chọn Self-Managed).

  3. Nhấn vào đường link Generate a token on GitLab ngay trên giao diện GitKraken. Trình duyệt sẽ mở thẳng trang tạo Personal Access Token (PAT) trên GitLab và tự động tích chọn sẵn 2 quyền bắt buộc là api và read_user.

  4. Bấm tạo Token trên web, copy chuỗi mã vừa sinh ra và dán ngược vào ô Personal Access Token trong GitKraken rồi nhấn Connect.

  5. Cuối cùng, bấm Generate SSH key and add to GitLab để hoàn tất việc cài đặt khóa tự động!

3. Quản lý SSH nâng cao: Local SSH Agent vs. Bundled SSH Agent

Nếu bạn là người đã có sẵn bộ SSH Key "gia truyền" trên máy hoặc đang dùng cấu hình phức tạp bên trong ~/.ssh/config, bạn nên hiểu rõ cách GitKraken xử lý luồng kết nối SSH ở mục Preferences -> SSH.

Tại đây có một tùy chọn mang tính quyết định là Use local SSH agent (Sử dụng trình quản lý SSH có sẵn của hệ điều hành):

Chế độ hoạt động Khi nào nên dùng? Cơ chế hoạt động
Tắt Use local SSH agent
(Khuyên dùng mặc định)
Khi bạn muốn GitKraken tự quản lý mọi thứ, đặc biệt khi dùng tính năng Multiple Profiles (chuyển đổi nhiều tài khoản Git). GitKraken sử dụng trình quản lý SSH tích hợp riêng của nó, cho phép gán mỗi Profile một file SSH Private Key khác nhau mà không sợ bị hệ điều hành lưu cache nhầm key.
Bật Use local SSH agent Khi bạn chỉ dùng 1 tài khoản duy nhất, hoặc cần kết nối qua SSH Jump Host / Bastion Server, hoặc đang dùng khóa cứng bảo mật (như YubiKey). GitKraken giao toàn bộ việc xác thực cho ssh-agent của Windows/Linux/macOS và đọc trực tiếp từ file cấu hình ~/.ssh/config của bạn.

Kinh nghiệm thực chiến trên Windows & WSL2: Khi làm việc với nhiều tài khoản (ví dụ: vừa code dự án công ty trên GitLab, vừa đẩy code cá nhân lên GitHub), bạn nên Bỏ chọn (Uncheck) mục Use local SSH agent. Cách này giúp GitKraken tự động trỏ đúng file Private Key tương ứng với từng nền tảng mà không bao giờ bị lỗi xung đột khóa giữa các kho chứa (Repository).

4. Xử lý nhanh lỗi kết nối khi chuyển từ HTTPS sang SSH

Rất nhiều trường hợp bạn đã lỡ git clone dự án từ trước bằng đường dẫn https://..., dẫn đến việc dù đã cài đặt SSH Key thành công trong Integrations nhưng mỗi lần bấm Push/Pull, GitKraken vẫn hiện bảng đòi nhập Username/Password (hoặc báo lỗi xác thực).

Nguyên nhân là do đường dẫn origin của dự án đó vẫn đang dùng giao thức HTTPS. Để đổi sang SSH ngay trên giao diện GitKraken mà không cần gõ lệnh git remote set-url:

  1. Mở dự án đó lên trong GitKraken, nhìn sang thanh Left Panel (cột bên trái) và tìm mục REMOTE.

  2. Di chuột vào nhánh origin, nhấn vào biểu tượng 3 dấu chấm (...) bên cạnh và chọn Edit origin.

  3. Tại ô Pull URL và Push URL, bạn sẽ thấy nút chuyển đổi hoặc có thể đổi trực tiếp đường dẫn từ dạng [https://github.com/user/repo.git](https://github.com/user/repo.git) sang dạng git@github.com:user/repo.git (hoặc chọn lại repo từ danh sách thả xuống).

  4. Nhấn Save để lưu lại. Từ giây phút này, mọi thao tác Fetch, Pull, Push đều đi qua luồng SSH mượt mà!

Tổng kết Bài học 2 & Chuẩn bị cho Bài học 3

Như vậy, chỉ với vài thao tác trong mục Integrations và SSH, bạn đã thiết lập xong "đường cao tốc" bảo mật nối thẳng từ GitKraken Desktop lên GitHub, GitLab và Bitbucket mà không tốn một giọt mồ hôi nào với Terminal.

Mẹo chèn hình ảnh khi bạn xuất bản bài viết:

  • Chèn 1 ảnh chụp màn hình tại mục 2.2 hiển thị trang tạo Personal Access Token trên GitLab với 2 ô tick api và read_user để độc giả không bị tích thiếu quyền.

  • Chèn 1 ảnh chụp nhỏ ở mục 4 chỉ rõ vị trí bấm Edit origin ở cột REMOTE bên trái màn hình.

Sau khi đã biết cách kết nối tài khoản, câu hỏi lớn tiếp theo sẽ xuất hiện: Làm sao để vừa làm việc trên GitLab công ty (bằng email công ty + SSH Key công ty), vừa code dự án riêng trên GitHub (bằng email cá nhân + SSH Key cá nhân) trên cùng một máy tính mà không bao giờ bị lẫn lộn?

Hẹn gặp lại bạn ở Bài học 3: Quản lý Multiple Profiles — Tách biệt hoàn toàn tài khoản Công ty và Cá nhân chỉ với 1 cú click!


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.