How to add an SSH key
To upload an SSH access key for a project, the REST API endpoint to use is:
POST /rest/keys/1.0/projects/{projectKey}/sshWith a payload similar to the following payload:
{
"key": {
"text": "ssh-rsa AAAAB3... me@127.0.0.1"
},
"permission": "PROJECT_READ"
}
To add an SSH access key to a repository, we can use:
POST /rest/keys/1.0/projects/{projectKey}/repos/{repositorySlug}/sshAnd this payload:
{
"key": {
"text": "ssh-rsa AAAAB3... me@127.0.0.1"
},
"permission": "REPO_WRITE"
}
And finally to add an SSH personal key for a user, this is the command:
POST /rest/ssh/1.0/keys?user=username
With a payload similar to:
{
"text": "ssh-rsa AAAAB3... me@127.0.0.1"
}
One full example
When using curl, the full command to add an SSH access key on a project looks like this:
curl --user <user>:<password> -H "Content-Type: application/json" --data @input.json -X POST <Bitbucket URL>/rest/keys/1.0/projects/{projectKey}/repos/{repositorySlug}/sshMore details
SSH keys in Bitbucket Server
There are two different types of SSH keys that can be set up as described on the Controlling access to code and Using SSH keys to secure Git operations:
- SSH personal keys
- SSH access keys
SSH keys REST API endpoints
Both of these access keys can be managed by using the REST API endpoints described on the Bitbucket Server - SSH page.
Just one of the multiple set of endpoints available on the Bitbucket Server REST APIs list.