-
Notifications
You must be signed in to change notification settings - Fork 9
Setting up Linux server with SSH keygen for BitBucket
Michael Hulse edited this page Oct 6, 2021
·
16 revisions
June, 2017 update: Setup SSH key for local dev box and use agent forwarding for servers
October, 2021 update: Kinda related: https://blog.developer.atlassian.com/different-ssh-keys-multiple-bitbucket-accounts/
- Login to server using SSH/terminal.
- Depending on your setup, you may need to
$ su -and enter the root user’s password (depending on the steps you take below, this will create files in that user’s home directory with root permissions). - List the contents of
.sshdirectory:$ ls -a ~/.sshand check for an existingid_rsa.pub; use that default identity in BitBucket (skip to next heading) or … - At the command prompt, type:
$ ssh-keygen. - Follow the on-screen instructions (on a production machine, a password should be entered for security purposes).
- For comparison’s sake, list the contents of
.sshdirectory:$ ls -a ~/.ssh. - Check to see if
ssh-agentis running:$ ps -e | grep [s]sh-agent. - If not (above command returns nothing) then run:
ssh-agent /bin/bash. - Add newly-created key to the
ssh-agent:$ ssh-add ~/.ssh/id_rsa. - View list of keys the
ssh-agentis managing:$ ssh-add -l. - Run
$ cat ~/.ssh/id_rsa.puband copy the output to your clipboard.
Reversing the above process is easy:
# Remove a specific identity:
$ ssh-add -d ~/.ssh/id_rsa
# Remove all identities:
$ ssh-add -D
$ rm ~/.ssh/id_rsa*- On BitBucket, choose
avatar>Manage Account. - Switch to the account you want to manage and click
SSH keys; add a new key which should be named to match the server name (e.g.,dev.foodomain.com). - Paste the key into the
Keyfield and clickAdd key.
- Go to your repo in BitBucket and copy the
SSHURI (e.g.,[email protected]:user-name/repo-name.git). - SSH to your server and navigate to the location you want to clone the repo to.
- From the command line, run:
$ git clone [email protected]:user-name/repo-name.git. Note: If you want to specify the folder name that the repo clones into, add that to the end of the command (e.g.,git clone [email protected]:user-name/repo-name.git target-folder-name).
Done!
- SSH to your server.
- Navigate to your repo:
$ cd target-folder-name/. - Run
$ git remote update && git status$ git fetch. - If there are changes to pull, then run
$ git pull. - Optionally re-run
$ git remote update && git status$ git fetch && git pullto see if everything is clean.