Connecting Secure Socket Shell (ssh)🤫 to GitHub
Tags: github, security, 100daysofcode
Published: 2022-02-10 06:25:26

**SSH protocol** gives users/system administrators secure access over an unsecure network to a computer.  

It is commonly used to secure remote access to resources, remote execution of command, delivery of software packages and updates and interactive and automated file transfers. None of this would be possible if it weren't for the back and forth between the SSH Client and the SSH Server. 

First the server sends its public key to the client, and the key is saved on the client. If I tell you that is where the magic happens then they establish a connection, would that be okay for you? Because it is for me. 

This does not have to be right, but I imagined it is the Force and the private key must be the midichlorians, you might not want to admit or know it is responsible for all the access and power you currently have, but it is there doing its work in the background. 

**GitHub** is where developers go to count little green boxes//be antisocial and social…. or a code hosting platform for version control and collaboration possibly. 

**Why GitHub and SSH?** 
Tired of always entering a password authentication for pushing and pulling to remote repositories? SSH keys got you covered, minus or plus a passphrase if you choose to make one during the set up phase, I traded a password for a passphrase yay me. 


**Step 1**
If you do not already have **Git Bash** for windows, now is the time to download it. Plus **GitHub**, I have a feeling you can not get this done without a GitHub account. 

**Step 2**
Enter this in the command line 

```
$ ssh-keygen -o
```

```
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/PCName/.ssh/id_rsa):
# Sets it to default location 
```

```
Enter passphrase (empty for no passphrase): [Type passphrase]
Enter same passphrase again: [Type passphrase again]
```

```
Your identification has been saved in /c/Users/PCName/.ssh/id_rsa
Your public key has been saved in /c/Users/PCName/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:############################################### PCName@PCName-######
The key's randomart image is:
+---[RSA ####]----+
|         Someth  |
|          ings ar|
|         e just r|
|         ally coo|
|        l when y |
|         ou think|
|         about ho|
|         w it act|
|            ually|
+----[workss]-----+
```

Do not tell anyone, but now you have a public and private key 🤫.
Located in `/c/Users/PCName/.ssh/id_rsa`

**Step 3**
```
$ cat ~/.ssh/id_rsa.pub
**************** A key is generated here *************** 
#Copy it and go to github
```
**Step 4**
Github--> Settings--> SSH & GPR key 

![1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0nfw2uqpr72owutxmsu8.png)
![2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/94h9igyi7ogqoxwb44an.png)
![3](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7e738he8tgdeja02pzmo.png)
![4](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4mve6nsb1j47158y65jm.png)


To use the ssh key just go to a git repository and select Code, Under Code select SSH and copy to clipboard. 

Back to Bash again. 
```
$ git clone [paste ssh link key from github]
Enter passphrase: [enter]
```
Hope this helps you get work done faster.