Objectives
- Explain what an SSH key is
- Generate your own SSH key pair
- Add your SSH key to your GitHub account
- Learn how to use your SSH key in your GitHub workflow
Fourth step: multiple ssh keys It’s good to have many keys, e.g. One for GitHub, one for BitBucket, one for your server. But, by default the idrsa.pub file is always used, we have to tell ssh to look different public key file depending on the service. Create and add your SSH key pair. It is best practice to use Git over SSH instead of Git over HTTP. In order to use SSH, you will need to: Create an SSH key pair; Add your SSH public key to GitLab. Creating your SSH key pair. Go to your command line. Follow the instructions to generate your SSH key pair.
Why Use an SSH Key?
When working with a GitHub repository, you'll often need to identify yourself to GitHub using your username and password. An SSH key is an alternate way to identify yourself that doesn't require you to enter you username and password every time.
SSH keys come in pairs, a public key that gets shared with services like GitHub, and a private key that is stored only on your computer. If the keys match, you're granted access.
The cryptography behind SSH keys ensures that no one can reverse engineer your private key from the public one.
Generating an SSH key pair
The first step in using SSH authorization with GitHub is to generate your own key pair.
You might already have an SSH key pair on your machine. You can check to see if one exists by moving to your
.ssh
directory and listing the contents.If you see
id_rsa.pub
, you already have a key pair and don't need to create a new one.If you don't see
id_rsa.pub
, use the following command to generate a new key pair. Make sure to replace [email protected]
with your own email address.(The
-o
option was added in 2014; if this command fails for you, just remove the -o
and try again)When asked where to save the new key, hit enter to accept the default location.
Github Generate Multiple Ssh Keys Windows 10
You will then be asked to provide an optional passphrase. This can be used to make your key even more secure, but for this lesson you can skip it by hitting enter twice.
When the key generation is complete, you should see the following confirmation:
The random art image is an alternate way to match keys but we won't be needing this.
Add your public key to GitHub
We now need to tell GitHub about your public key. Display the contents of your new public key file with
cat
:The output should look something like this:
Copy the contents of the output to your clipboard.
Login to github.com and bring up your account settings by clicking the tools icon.
Select SSH Keys from the side menu, then click the Add SSH key button.
Name your key something whatever you like, and paste the contents of your clipboard into the Key text box.
Finally, hit Add key to save. Enter your github password if prompted.
####Using Your SSH Key
Going forward, you can use the SSH clone URL when copying a repo to your local machine.
This will allow you to bypass entering your username and password for future GitHub commands.
Key Points
- SSH is a secure alternative to username/password authorization
- SSH keys are generated in public / private pairs. Your public key can be shared with others. The private keys stays on your machine only.
- You can authorize with GitHub through SSH by sharing your public key with GitHub.
Problem
I have two Github accounts: oanhnn (personal) and superman (for work).I want to use both accounts on same computer (without typing password everytime, when doing git push or pull).
Solution
Use ssh keys and define host aliases in ssh config file (each alias for an account).
How to?
- Generate ssh key pairs for accounts and add them to GitHub accounts.
- Edit/Create ssh config file (
~/.ssh/config
): - Add ssh private keys to your agent:
- Test your connectionWith each command, you may see this kind of warning, type
yes
:If everything is OK, you will see these messages: - Now all are set, just clone your repositories
Done! Goodluck!