Skip to content

Instantly share code, notes, and snippets.

@bradtraversy
Last active October 22, 2024 15:35
Show Gist options
  • Save bradtraversy/f03df587f2323b50beb4250520089a9e to your computer and use it in GitHub Desktop.
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

@mouadTaoussi
Copy link

mouadTaoussi commented Dec 20, 2019

Thank You Brad You're Brilliant!

@mart3y
Copy link

mart3y commented Jun 2, 2020

Thank's Brad

@vimal-verma
Copy link

Thank's a lot!

@iam-amanxz
Copy link

Thanx sir

@Polda18
Copy link

Polda18 commented Nov 2, 2020

Very useful tutorial I say. I must say something and that's in order to access a self hosted server that doesn't have an easy web access like DigitalOcean has you have to become creative and find different means to copy and paste your public key to the server you're trying to access via SSH. One of the means, probably craziest and best at the same time in case of desktop server would be use of pastebin service with time-limited access. Our server runs desktop version of Ubuntu MATE, running as virtual machine under ProxMox on a physical machine, basically self hosted server. Console is simply just remote monitor and there is no shared clipboard feature so the only way I can copy paste between local machine and guest system on a remote server is using something like pastebin.

@NabeelYousafPasha
Copy link

Thanks very much. Your video been in my YouTube downloaded videos for more than a year. Respect from Pakistan. @brad

@bruno-0
Copy link

bruno-0 commented Dec 15, 2020

I can't Thank you enough

@shark159
Copy link

If you run a server on a machine and then you move back and forth to 2 different networks(you'll have 2 different IPs). Is it possible to register 2 ssh keys in first run to work on both networks? The idea is to connect to server with the same user but in different local networks.

@mtsafe
Copy link

mtsafe commented Apr 6, 2021

The command to "Add Key to server in one command" does not end with a double quote. Please fix. Thank you!

@Melford-D
Copy link

Thanks for the assistance, Brad!

@abhishek17569
Copy link

Thanks a lot

@Fraol123
Copy link

thanks very helpful video

@yorkshire-pudding
Copy link

The youtube and gist is really helpful. You may want to update the github section as github recommends the ed25519 algorithm

Paste the text below, substituting in your GitHub email address.
$ ssh-keygen -t ed25519 -C "your_email@example.com"

@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

@mudimurtala
Copy link

Thanks for this Brad

@RangiraDave
Copy link

you're welcome

@mdawoud27
Copy link

Awesome 🙌

@rakibahmeddev
Copy link

that's awesome sir

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