# SSH Cheat Sheet
## This sheet goes along with this [SSH YouTube tutorial](https://www.youtube.com/watch?v=hQWRp-FdTpc&t=1270s)
### Login via SSH with password (LOCAL SERVER)
```$ ssh brad@192.168.1.29```
### Create folder, file, install Apache (Just messing around)
```$ mkdir test```
```$ cd test```
```$ touch hello.txt```
```$ sudo apt-get install apache2```
### Generate Keys (Local Machine)
```$ ssh-keygen```
### Add Key to server in one command
```> cat ~/.ssh/id_rsa.pub | ssh brad@192.168.1.29 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys```
### Create & copy a file to the server using SCP
```$ touch test.txt```
```$ scp ~/test.txt brad@192.168.1.29:~```
## DIGITAL OCEAN
> Create account->create droplet
### Create Keys For Droplet (id_rsa_do)
```$ ssh-keygen -t rsa```
> Add Key When Creating Droplet
### Try logging in
```$ ssh root@doserver```
### If it doesn't work
```$ ssh-add ~/.ssh/id_rsa_do```
(or whatever name you used)
### Login should now work
```$ ssh root@doserver```
### Update packages
```$ sudo apt update```
```$ sudo apt upgrade```
### Create new user with sudo
```$ adduser brad```
```$ id brad```
```$ usermod -aG sudo brad```
```$ id brad```
### Login as brad
```> ssh brad@doserver```
### We need to add the key to brads .ssh on the server, log back in as root
```$ ssh root@doserver```
```$ cd /home/brad```
```$ mkdir .ssh```
```$ cd .ssh```
```$ touch authorized_keys```
```> sudo nano authorized_keys```
(paste in the id_rsa_do.pub key, exit and log in as brad)
### Disable root password login
```$ sudo nano /etc/ssh/sshd_config```
### Set the following
```PermitRootLogin no```
```PasswordAuthentication no```
### Reload sshd service
```$ sudo systemctl reload sshd```
### Change owner of /home/brad/* to brad
```$ sudo chown -R brad:brad /home/brad```
### May need to set permission
```$ chmod 700 /home/brad/.ssh```
### Install Apache and visit ip
``` $ sudo apt install apache2 -y```
## Github
### Generate Github Key(On Server)
``` $ ssh-keygen -t rsa```
(id_rsa_github or whatever you want)
## Add new key
```$ ssh-add /home/brad/.ssh/id_rsa_github```
## If you get a message about auth agent, run this and try again
```$ eval `ssh-agent -s````
## Clone repo
```$ git clone git@github.com:bradtraversy/react_otka_auth.git```
## Install Node
```$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -```
```$ sudo apt-get install -y nodejs```
## Install Dependencies
``` $ npm install ```
## Start Dev Server and visit ip:3000
```$ npm start```
## Build Out React App
``` $ npm run build```
## Move static build to web server root
``` $ sudo mv -v /home/brad/react_otka_auth/build/* /var/www/html```