Securing Your GitHub Account with SSH Keys

Hands-On Lab

 

Photo of Terrence Cox

Terrence Cox

Senior Vice President of Content

Length

00:30:00

Difficulty

Beginner

Working with source control in your own public or private GitHub repository will be a common occurrence for most system administrators. Through the use of standard SSH tools, the student will learn how to generate a special SSH key that can be used to secure access to a private repository. At the end of this learning activity, the student will know how to generate, add, and use this SSH key to secure their access to private repositories.

What are Hands-On Labs?

Hands-On Labs are scenario-based learning environments where learners can practice without consequences. Don't compromise a system or waste money on expensive downloads. Practice real-world skills without the real-world risk, no assembly required.

Securing Your GitHub Account with SSH Keys

Introduction

Hello there, and welcome to the lab. We've got to use SSH keys to help keep our GitHub repositories locked down, and we're going to walk through doing that right here.

There are a couple of things that we'll need ahead of time, though. We need a GitHub account, and we'll need it open in another browser tab while we work through the lab.

Create the SSH Key to Use to Secure Access to GitHub

From our home directory, we can generate the key with this:

ssh-keygen

We'll be prompted for a location (just keep the default) and a passphrase (twice), then see some "randomart image," like this:

+---[RSA 2048]----+
|            ++ +o|
|             .*.+|
|           E ..= |
|       o  . *oO.o|
|        S..o.X+O.|
|         +.  +O.*|
|        . . o+*+o|
|         .  .+.+.|
|          .. .o. |
+----[SHA256]-----+

Now we need to view the contents of the file that was created:

cat ~/.ssh/id_rsa.pub

Let's copy it. Over in our GitHub account, if we get into our account's Settings, there's a menu option (on the left) for SSH and GPG keys. In there, we can click New SSH key. There's a web form here. Let's give our key a meaningful name (like lab server) in the Title spot, and paste our key's contents into the Key spot.

Testing

Now we can create a Git clone:

git clone git@github.com:linuxacademy/content-source-control-git.git'

After we run that, we'll get the usual The authenticity of host... message. We can type yes, and then should see the Git repo get cloned locally.

Conclusion

We're done! We created an SSH key on our local machine, used it to create a new key on GitHub so that we can pull things down. Congratulations!