Set up an SSH key once, then clone, push, and pull without typing credentials.
ssh-keygen -t ed25519 -C "[email protected]", then add the public key under Settings → SSH Keys.[email protected]:owner/repo.git remotes.ssh -T [email protected] — a successful authentication looks like a message telling you shell access isn't provided, not an error about your key.If you don't already have an SSH key, generate an Ed25519 key pair — it's shorter and faster to verify than RSA, and is UnityFreak's recommended type:
ssh-keygen -t ed25519 -C "[email protected]"Accept the default file location unless you have a reason not to. This creates two files — a private key (never share this) and a .pub public key file, which is the one you add to UnityFreak.
Open Settings → SSH Keys and paste the contents of your .pub file into the Key field, then give it a Title so you can identify which machine it belongs to later (e.g. "My laptop") and click Add SSH Key.
Once added, SSH access to your repositories uses [email protected]:owner/repo.git remotes — no password or token needed for the rest of that key's lifetime.
Verify your key is registered and working with:
ssh -T [email protected]UnityFreak's SSH endpoint only ever serves Git operations, so a bare -T connection with no git command attached doesn't drop you into a shell. A successful authentication looks like a message explaining that shell access isn't provided and that the account only serves Git over SSH — seeing that message (rather than a permission or key error) means your key was recognized and the connection worked. From there, a real git clone [email protected]:owner/repo.git exercises the full path.
Prefer not to manage SSH keys — or working somewhere SSH ports are blocked? Clone and push over HTTPS instead, authenticating with a personal access token in place of a password. This is the same style of credential used for importing a repository from another host. Generate and manage your tokens under Settings → Personal Access Tokens, and use the token as the password when Git prompts for credentials over HTTPS.
Permission denied (publickey). The most common causes are that the key you added under Settings → SSH Keys isn't the one your local Git client is actually presenting, or that the wrong key is being offered first when you have several. Confirm which key SSH is using with ssh -Tv [email protected] (the verbose output lists every key it tries), and double-check the public key you pasted into the app matches your local private key's pair.
Could not open a connection to your authentication agent. Your SSH agent isn't running, or your key hasn't been added to it. Start the agent and add your key before retrying:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519