However, I’d recommend using something descriptive, like bitbucket_id_rsa so you know what it’s for later and to avoid accidentally overwriting the key if you create one for BitBucket, one for GitHub, one for your web server and so on. The private key stays on your computer and the public key is uploaded onto the server.īitBucket recommend you keep the default key name unless you have a reason to change it. The key without the extension is the private key and the key with the. Or you can list all the SSH keys you have by running: ls ~/.ssh You’ll end up with two SSH keys, one private and one public, which you can see by running: ssh-add -l ![]() set up a SSH key for BitBucket on macOS (steps 1–2 for Git).If you don’t already have a SSH key for BitBucket and/or GitHub on the particular device you’re using, you’ll need to create one for each service that you use and on each device that you will use to access your repos: If you have a SSH key already for the computer/device you’re using, you’re all set. It seems that the set-url command is applied to both fetch and push when changing the protocol, but when keeping the (SSH) protocol the same, it only updates fetch. It happened for me when I got the could not resolve hostname error above and ran set-url again. I don’t know why it works for some cases but not other ones. You don’t need to do anything further for pull because it does what fetch does (because pull is equivalent to fetch then merge). You’ll need to do the push separately by using the -push option: git remote set-url -push origin :username/reponame.git Or like this: origin :username/reponame.git (fetch) If the fetch URL has changed but the push URL has not, like this: origin :username/reponame.git (fetch) You may find that only fetch has changed - if so, the next section should help. Run git remote -v again and check the output. If it is, run set-url again, making sure to exclude the ssh:// part of the URL. Origin ssh:// :username/reponame.git (push) See if the SSH URL is prefixed with ssh://, like this: origin ssh:// :username/reponame.git (fetch) If you do, check the output from git remote -v carefully. Please make sure you have the correct access rights You might get this error: ssh: Could not resolve hostname :username: nodename nor servname provided, or not knownįatal: Could not read from remote repository. Origin :username/reponame.git (push) Troubleshooting Error: Could not resolve hostname This time, you’ll see something like this: origin :username/reponame.git (fetch) Then check what’s there again: git remote -v ![]() Type the following for BitBucket: git remote set-url origin :username/reponame.gitįor GitHub, replace with. You can see that the URLs include the protocol. This example shows a repo on BitBucket GitHub is similar. ![]() You should see a pair of entries for each remote repo (I once had origin and origin2, but that’s another story): one for fetch, which includes pull, and one for push: origin /username/reponame.git (fetch) Then check to see what you have on your server already: git remote -v Open Terminal or your command-line app of choice and navigate to your repo’s directory: cd ~/projects/reponame This is how you tell your Git server how you want to access it. This rigmarole needs to be done on each computer you intend to access your Git repo with for each repo you have that you want to access by SSH rather than by HTTPS. Here, I outline how to do it on Mac OS X, partly to remind myself how to do it in the future, partly to collate all the infomation on the internet about it and partly in the hope that someone else might find it useful. I seemed to spend a crazy amount of time trying to work out how to change access to a Git repository (repo) from HTTPS to SSH to avoid password prompts when pushing changes to BitBucket and GitHub. ![]() Add the private SSH key to your keychain.Add the public SSH key to your remote Git server.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |