After a one-time setup, team members can pull, edit, and commit code and documents directly inside their IDE (Qoder / Trae) — without ever opening the Gitee website or typing a username and password. No more logging into the web UI just to click “Upload File / New Document / Edit Online”.
The trick is to replace account passwords with SSH keys: set it up once and it works indefinitely. Unlike personal access tokens, SSH keys never expire, and you will never see the dreaded 403 / Access token is expired error again.
📌 What “passwordless” really means: your day-to-day pull / commit operations no longer require logging into the website. The initial setup still requires signing in to the Gitee website once to paste your public key (see Step 6), and you must already have been added as a repository collaborator by the project owner.
Just follow the steps in order. Every step tells you what you should expect to see — if you see something different, check the troubleshooting table in section seven.
You have a Gitee account and have been added as a collaborator on this project
Ask the project owner. ⚠️ This project is a private repository — without collaborator access, the clone in Step 8 will definitely fail
2
git is installed on your computer
Run git --version in a terminal. If it prints a version number (e.g. git version 2.4x), you are good
If item 2 reports “command not found”: on Windows, restart your IDE (Qoder or Trae) and try again (they usually bundle git). If it still fails, contact the project owner.
The project owner will give you a repository address shaped like:
git@gitee.com:<org-name>/<repo-name>.git
⚠️ <org-name> and <repo-name> are placeholders — replace them with the real values the owner gives you. Do not copy them literally.
Note for international readers: Although this guide is written for Gitee, the exact same workflow works with GitHub — just replace gitee.com with github.com everywhere.
SSH is simply hanging a padlock on Gitee, while you keep the only key:
Name
Analogy
Where it lives
Can it be shared?
Public key
The padlock
Attached to your Gitee account
✅ Yes (it is meant to be given away)
Private key
The key
Only on your own computer
❌ Never share it with anyone
Once configured, every Gitee operation boils down to one question: “Can the key in your hand open the lock on my door?” If yes, you are in.
Why not just use a username and password?
Gitee does not allow your login password for Git operations. The alternative is a personal access token, but tokens have an expiry date (once expired, you get 403 or Access token is expired). An SSH key has no expiry — configure once, done forever. That is why this guide recommends SSH.
If it shows OpenSSH_for_Windows_x.x → ✅ already installed, continue to Step 3
If it says “‘ssh’ is not recognized…” → you need to install it:
Settings → Apps → Optional Features → Add a feature → search for OpenSSH Client → Install → reopen PowerShell and run ssh -V again
⚠️ The email must be the one bound to your Gitee account, otherwise your commits will not show up on Gitee as yours.
Not sure which email that is? Log in to Gitee → click your avatar (top-right) → Settings → Email Management.
Step 4 · Generate Your Key Pair (Public + Private)
You will be asked a few questions. Normally, just press Enter for all of them:
Prompt
How to answer
Enter file in which to save the key (...)
Enter (use the default location)
Enter passphrase (empty for no passphrase)
Enter (leave it empty)
Enter same passphrase again
Enter
❗ If you see ... already exists. Overwrite (y/n)?
A key pair already exists on this machine. Do not overwrite it — type n and press Enter, then jump straight to Step 5 (you already have a key, just use it)
⚠️ Run this in a normal PowerShell window, not one launched with “Run as administrator”. Keys generated in an administrator session are saved into the administrator account’s profile, and later cannot be found by your normal session — the symptom is Permission denied (publickey).
After generation, the keys live in the .ssh\ folder under your user directory (usually C:\Users\<you>\.ssh\, precisely $env:USERPROFILE\.ssh):
id_ed25519 — the private key (the key). Never share it
id_ed25519.pub — the public key (the padlock). This is what you copy in the next step
The authenticity of host 'gitee.com (...)' can't be established.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
→ Type yes and press Enter (this is normal — it only confirms the server’s identity once).
Seeing the following line means ✅ success:
Hi <username>! You've successfully authenticated, but GITEE.COM does not provide shell access.
Judge success by this line only — do not look at “error / exit code” hints. Gitee always appends “does not provide shell access”, which is normal, not an error.
A folder named after the repository will appear on your Desktop — the download is complete.
If you get Repository not found or 403: the first checkbox did not pass — you have not been added as a collaborator yet. Ask the project owner to add you, then retry.
macOS users: replace the first line with cd ~/Desktop, and substitute the real <org-name>/<repo-name>.
Option B · IDE GUI: on the Qoder or Trae welcome page click “Clone Repository”; or press Ctrl+Shift+P to open the command palette, type Git: Clone, paste git@gitee.com:<org-name>/<repo-name>.git, and pick a local folder.
(Menu locations vary slightly between versions; Option A always works.)
After opening that folder in Qoder / Trae, the “Source Control” panel is visible on the left
Change one character in Qoder / Trae → commit → push, and the commit appears on the Gitee website with your avatar / name on it
The whole process above never asked for a password and never made you open the Gitee website (except the one-time public-key paste) — the goal of this guide is met
id_ed25519 (the file without .pub) is your private key — it is effectively your identity card. Never send it to anyone, never upload it to the internet, never commit it into a repository
Only id_ed25519.pub (the public key) may be shared
When switching computers or if you suspect a leak, delete the old public key at https://gitee.com/profile/sshkeys and generate a new pair from Step 4