Skip to content

Instantly share code, notes, and snippets.

@bradtraversy
Last active March 23, 2024 14:21
Star You must be signed in to star a gist
Save bradtraversy/f03df587f2323b50beb4250520089a9e to your computer and use it in GitHub Desktop.
SSH & DevOps Crash Course Snippets

SSH Cheat Sheet

This sheet goes along with this SSH YouTube tutorial

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

@basirchand
Copy link

Great work.

@olakunlebalogun
Copy link

Thanks as always, the journey has been easier with you. l am just getting started with the Linux distro and it's like I don't know anything about it at all, do you or anyone have some resources they can refer me to, it would be of great help... Thanks again Brad!

@Mehrdad-Farshi
Copy link

thank you sir i just learned how to be more secure with ssh

@devSahinur
Copy link

thank you sir

@Dbenjamy
Copy link

Dbenjamy commented Jan 3, 2023

Small mistake

The bash code for "Add key to server in one command" is missing a closing quotation mark. I don't know how other systems handle it, but in mine it kept expecting more lines until I added a closing quote.

@seyistry
Copy link

thanks brad

@Ronnie5562
Copy link

Thanks brad.

@Pagadam
Copy link

Pagadam commented May 15, 2023

Thanks Brad

@Adooz
Copy link

Adooz commented Aug 26, 2023

extremely insightful.

@OUALIID
Copy link

OUALIID commented Sep 24, 2023

Thanks brad

@csuryansh23
Copy link

Thanks

@mz3r0
Copy link

mz3r0 commented Dec 15, 2023

In the "Add key to server in one command" where is the double quote supposed to end?

@RangiraDave
Copy link

In the "Add key to server in one command" where is the double quote supposed to end?

at the end of the command

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment