title
SSH Crash Course | With Some DevOps
description
In this video we will learn the fundamentals of SSH along with some basic DevOps and Linux stuff. We will start with a local Ubuntu server on my network and then create a remote Digital Ocean Droplet to work with. We will create sets of SSH keys for those as well as Github. We will even do a simple React app deployment.
Gist With Commands:
https://gist.github.com/bradtraversy/f03df587f2323b50beb4250520089a9e
Digital Ocean Link: (2 Free Months)
https://m.do.co/c/5424d440c63a
Docs Page:
https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2
Command Line Tutorial:
https://www.youtube.com/watch?v=cBokz0LTizk&t=2s
💖 Become a Patron: Show support & get perks!
http://www.patreon.com/traversymedia
Website & Udemy Courses
http://www.traversymedia.com
Follow Traversy Media:
http://www.facebook.com/traversymedia
http://www.twitter.com/traversymedia
http://www.instagram.com/traversymedia
detail
{'title': 'SSH Crash Course | With Some DevOps', 'heatmap': [{'end': 663.713, 'start': 626.821, 'weight': 0.931}, {'end': 1784.238, 'start': 1714.33, 'weight': 0.742}, {'end': 3294.75, 'start': 3259.751, 'weight': 0.798}], 'summary': 'This ssh crash course covers ssh basics, authentication methods, setting up apache server, creating ssh keys, server management, user privileges, and setting up apache, github, ssh keys, and react app, offering $10 free credit for two months of hosting on digitalocean.', 'chapters': [{'end': 252.977, 'segs': [{'end': 64.257, 'src': 'embed', 'start': 26.007, 'weight': 0, 'content': [{'end': 30.43, 'text': 'And I like to make videos that I would have wanted to see back then videos that could have helped me.', 'start': 26.007, 'duration': 4.423}, {'end': 32.411, 'text': "So that's what we're gonna do.", 'start': 31.45, 'duration': 0.961}, {'end': 33.772, 'text': "We're gonna go over a few things.", 'start': 32.451, 'duration': 1.321}, {'end': 40.277, 'text': "We're gonna first look at some slides and just talk about what SSH is, what it's used for and so on.", 'start': 34.673, 'duration': 5.604}, {'end': 45.281, 'text': "And then we're gonna jump into logging into a local Ubuntu server with SSH.", 'start': 40.578, 'duration': 4.703}, {'end': 48.284, 'text': "So a local server that's on my network.", 'start': 45.361, 'duration': 2.923}, {'end': 53.028, 'text': "And we're gonna create some SSH keys so that we don't have to use a password.", 'start': 48.964, 'duration': 4.064}, {'end': 54.869, 'text': 'We can use those keys.', 'start': 53.068, 'duration': 1.801}, {'end': 58.192, 'text': "We'll generate a set of private and public keys.", 'start': 54.909, 'duration': 3.283}, {'end': 64.257, 'text': "And then after that we're going to move to a remote DigitalOcean server or Droplet as they call them.", 'start': 59.353, 'duration': 4.904}], 'summary': 'Creating ssh keys for local and remote servers, facilitating secure access.', 'duration': 38.25, 'max_score': 26.007, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc26007.jpg'}, {'end': 101.211, 'src': 'embed', 'start': 79.692, 'weight': 2, 'content': [{'end': 88.66, 'text': "And then I'm also going to show you how to set up SSH keys with GitHub so that you can clone repositories and stuff like that without having to use your password,", 'start': 79.692, 'duration': 8.968}, {'end': 89.961, 'text': 'your username and password.', 'start': 88.66, 'duration': 1.301}, {'end': 93.645, 'text': "And you guys have probably done this before, but just for the people that haven't.", 'start': 89.981, 'duration': 3.664}, {'end': 96.087, 'text': 'So hopefully you guys like this.', 'start': 94.666, 'duration': 1.421}, {'end': 99.79, 'text': "I've been asked to do more DevOps stuff, and I think this is a good place to start.", 'start': 96.167, 'duration': 3.623}, {'end': 101.211, 'text': "So let's get into it.", 'start': 100.171, 'duration': 1.04}], 'summary': 'Tutorial on setting up ssh keys for github to avoid using username and password.', 'duration': 21.519, 'max_score': 79.692, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc79692.jpg'}, {'end': 192.75, 'src': 'embed', 'start': 121.924, 'weight': 3, 'content': [{'end': 127.166, 'text': 'These are all different types of protocols that communicate in different ways for different reasons.', 'start': 121.924, 'duration': 5.242}, {'end': 131.33, 'text': 'So with SSH we can use it for pretty much anything.', 'start': 127.746, 'duration': 3.584}, {'end': 138.257, 'text': 'as far as creating files on other computers, folders and files, installing programs, running programs,', 'start': 131.33, 'duration': 6.927}, {'end': 143.001, 'text': 'deploying applications for the web and setting up web servers pretty much anything you want.', 'start': 138.257, 'duration': 4.744}, {'end': 145.984, 'text': "And what's great about it is it's secure.", 'start': 143.662, 'duration': 2.322}, {'end': 146.805, 'text': "It's encrypted.", 'start': 146.004, 'duration': 0.801}, {'end': 149.027, 'text': 'All the traffic is going to be encrypted.', 'start': 147.165, 'duration': 1.862}, {'end': 150.829, 'text': 'There are other technologies.', 'start': 149.407, 'duration': 1.422}, {'end': 158.992, 'text': "protocols that are similar, like telnet, where you can log in and you can do this stuff, but it's not safe because it's not encrypted.", 'start': 151.489, 'duration': 7.503}, {'end': 163.373, 'text': 'people can can basically hijack your your sessions and things like that.', 'start': 158.992, 'duration': 4.381}, {'end': 167.295, 'text': 'so ssh is definitely what you want to use for this type of stuff.', 'start': 163.373, 'duration': 3.922}, {'end': 178.622, 'text': 'Now, SSH is usually used in a remote command line or terminal session, but it can also be used with SCP or secure file copy, and you can.', 'start': 168.115, 'duration': 10.507}, {'end': 185.506, 'text': "there's actually GUI programs where you can basically drag and drop files to your server that way and win.", 'start': 178.622, 'duration': 6.884}, {'end': 190.189, 'text': 'SCP for Windows is one of them that I can think of, one of the clients that I can think of.', 'start': 185.506, 'duration': 4.683}, {'end': 192.75, 'text': 'And then you can also use it with FTP.', 'start': 190.709, 'duration': 2.041}], 'summary': 'Ssh is a secure protocol for various tasks, including file management and web server setup, with encrypted traffic, offering more security than similar options like telnet.', 'duration': 70.826, 'max_score': 121.924, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc121924.jpg'}, {'end': 243.172, 'src': 'embed', 'start': 217.342, 'weight': 6, 'content': [{'end': 228.405, 'text': "the server or the machine that you're logging into has to have something called sshd, or open ssh daemon, which sits and listens for ssh connections.", 'start': 217.342, 'duration': 11.063}, {'end': 234.507, 'text': "okay, so usually it's a linux server you're logging into And with something like, let's say, Ubuntu Server,", 'start': 228.405, 'duration': 6.102}, {'end': 240.731, 'text': 'which is the operating system that my local server is running, that comes with SSHD.', 'start': 234.507, 'duration': 6.224}, {'end': 243.172, 'text': "So it's not something that I had to set up.", 'start': 240.791, 'duration': 2.381}], 'summary': 'Sshd is required on the server for ssh connections, typically present in linux servers like ubuntu server.', 'duration': 25.83, 'max_score': 217.342, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc217342.jpg'}], 'start': 7.594, 'title': 'Ssh basics and keys', 'summary': 'Covers the fundamentals of ssh, emphasizing its importance in web development and its security benefits. it includes key concepts such as logging into servers, creating ssh keys, and its various uses for tasks like file management and program installation.', 'chapters': [{'end': 99.79, 'start': 7.594, 'title': 'Understanding ssh and ssh keys', 'summary': 'Introduces ssh and its importance in web development, covering key concepts like logging into a local ubuntu server, creating ssh keys, accessing a remote digitalocean server, and setting up ssh keys with github.', 'duration': 92.196, 'highlights': ['The chapter covers the basics of SSH and its importance in web development, including logging into a local Ubuntu server, creating SSH keys for secure authentication, and accessing a remote DigitalOcean server for hosting applications. This is the most relevant highlight as it summarizes the key points covered in the chapter.', 'Demonstrates how to create SSH keys to enable secure authentication without using passwords, by generating a set of private and public keys. This highlight emphasizes the practical aspect of creating SSH keys and the benefit of secure authentication.', 'Explains the process of setting up SSH keys with GitHub, enabling users to clone repositories and perform other operations without entering their username and password. This highlight showcases the convenience and security benefits of using SSH keys with GitHub.']}, {'end': 252.977, 'start': 100.171, 'title': 'Understanding ssh basics', 'summary': 'Covers the basics of ssh, its uses, and security benefits, including its encryption and protocols, and how it can be used for various tasks like file management, program installation, and web server setup, emphasizing its importance in secure communication and remote access.', 'duration': 152.806, 'highlights': ['SSH can be used for a wide range of tasks including creating files, folders, installing programs, running programs, deploying applications for the web, and setting up web servers. SSH can be used for a wide range of tasks including creating files, folders, installing programs, running programs, deploying applications for the web, and setting up web servers.', 'SSH is secure and encrypted, providing a safe way to communicate and perform tasks remotely, unlike protocols like telnet which are not encrypted and pose security risks. SSH is secure and encrypted, providing a safe way to communicate and perform tasks remotely, unlike protocols like telnet which are not encrypted and pose security risks.', 'SSH can be used in remote command line or terminal sessions, as well as with SCP for secure file copy and with GUI programs for file transfer, ensuring flexibility in its usage. SSH can be used in remote command line or terminal sessions, as well as with SCP for secure file copy and with GUI programs for file transfer, ensuring flexibility in its usage.', 'SSHD (Open SSH Daemon) is required on the server or machine being accessed, and it is commonly available on Linux servers like Ubuntu, emphasizing the need for SSHD for SSH connections. SSHD (Open SSH Daemon) is required on the server or machine being accessed, and it is commonly available on Linux servers like Ubuntu, emphasizing the need for SSHD for SSH connections.']}], 'duration': 245.383, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc7594.jpg', 'highlights': ['The chapter covers the basics of SSH and its importance in web development, including logging into a local Ubuntu server, creating SSH keys for secure authentication, and accessing a remote DigitalOcean server for hosting applications.', 'Demonstrates how to create SSH keys to enable secure authentication without using passwords, by generating a set of private and public keys.', 'Explains the process of setting up SSH keys with GitHub, enabling users to clone repositories and perform other operations without entering their username and password.', 'SSH can be used for a wide range of tasks including creating files, folders, installing programs, running programs, deploying applications for the web, and setting up web servers.', 'SSH is secure and encrypted, providing a safe way to communicate and perform tasks remotely, unlike protocols like telnet which are not encrypted and pose security risks.', 'SSH can be used in remote command line or terminal sessions, as well as with SCP for secure file copy and with GUI programs for file transfer, ensuring flexibility in its usage.', 'SSHD (Open SSH Daemon) is required on the server or machine being accessed, and it is commonly available on Linux servers like Ubuntu, emphasizing the need for SSHD for SSH connections.']}, {'end': 779.611, 'segs': [{'end': 275.797, 'src': 'embed', 'start': 254.157, 'weight': 4, 'content': [{'end': 269.129, 'text': "And then on the server you also have an SSHD config file where you can change things like let's say if you want to disable password login for the root user to prevent brute force attacks and just make other security provisions on your server,", 'start': 254.157, 'duration': 14.972}, {'end': 270.79, 'text': 'you would use that file to do that.', 'start': 269.129, 'duration': 1.661}, {'end': 275.797, 'text': 'So, obviously you need a way to authenticate with your server.', 'start': 272.754, 'duration': 3.043}], 'summary': 'Sshd config file allows changing security provisions, such as disabling password login for root user to prevent brute force attacks.', 'duration': 21.64, 'max_score': 254.157, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc254157.jpg'}, {'end': 331.988, 'src': 'embed', 'start': 310.673, 'weight': 0, 'content': [{'end': 321.219, 'text': "which I'll talk about in a second it's gonna prompt me for the password and then I put the password in and It'll show me a welcome screen in the terminal and then I can go to town and create you know,", 'start': 310.673, 'duration': 10.546}, {'end': 324.481, 'text': 'create applications or whatever I want to do on that server.', 'start': 321.219, 'duration': 3.262}, {'end': 331.988, 'text': 'Now another way that you can authenticate is by using SSH keys and you can bypass the password altogether.', 'start': 325.142, 'duration': 6.846}], 'summary': 'Ssh keys allow password bypass for server authentication.', 'duration': 21.315, 'max_score': 310.673, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc310673.jpg'}, {'end': 395.102, 'src': 'embed', 'start': 372.776, 'weight': 1, 'content': [{'end': 380.838, 'text': "all you have to do is run this ssh keygen command and basically, what it's going to do is it's going to create a public key and a private key.", 'start': 372.776, 'duration': 8.062}, {'end': 386.779, 'text': "it's going to create it by default right in your home folder or your user folder, which is this tilde.", 'start': 380.838, 'duration': 5.941}, {'end': 391.14, 'text': "that's what that represents and then it's going to be in a folder called dot ssh.", 'start': 386.779, 'duration': 4.361}, {'end': 395.102, 'text': "Okay now, the dot means that it's going to be a hidden folder by default.", 'start': 391.42, 'duration': 3.682}], 'summary': "Running 'ssh-keygen' command creates public and private keys in a hidden folder.", 'duration': 22.326, 'max_score': 372.776, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc372776.jpg'}, {'end': 457.633, 'src': 'embed', 'start': 433.763, 'weight': 2, 'content': [{'end': 441.683, 'text': "okay, now, on your server you'll also have a dot ssh folder, Or you'll create one if it doesn't have one yet.", 'start': 433.763, 'duration': 7.92}, {'end': 445.105, 'text': "And then you'll have a folder in there called authorized keys.", 'start': 442.043, 'duration': 3.062}, {'end': 446.986, 'text': "And that's where your public key goes.", 'start': 445.285, 'duration': 1.701}, {'end': 455.531, 'text': "Okay, so that's how the server knows if if the machine that you're logging in with actually is authorized to do so.", 'start': 447.526, 'duration': 8.005}, {'end': 457.633, 'text': "Okay, and I'm going to show you how to do all this.", 'start': 456.092, 'duration': 1.541}], 'summary': 'Set up .ssh folder with authorized keys for server access.', 'duration': 23.87, 'max_score': 433.763, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc433763.jpg'}, {'end': 524.963, 'src': 'embed', 'start': 482.367, 'weight': 3, 'content': [{'end': 487.33, 'text': 'Puttygen was used to create the keys and then Putty was used to actually connect to the server.', 'start': 482.367, 'duration': 4.963}, {'end': 488.871, 'text': "And it's a GUI program.", 'start': 487.75, 'duration': 1.121}, {'end': 492.153, 'text': "It is a graphical program, but it's a pain in the ass to use.", 'start': 488.891, 'duration': 3.262}, {'end': 499.558, 'text': 'I hated it when I used to use Windows before SSH was available, before Git Bash was available and stuff like that.', 'start': 492.734, 'duration': 6.824}, {'end': 505.103, 'text': "But if you are on, let's say, Windows 7 or Windows 8 or something like that.", 'start': 500.178, 'duration': 4.925}, {'end': 511.409, 'text': "I don't believe the SSH command is available on those systems, so you will have to use something like putty.", 'start': 505.103, 'duration': 6.306}, {'end': 518.436, 'text': "but I would recommend using get bash, which isn't just an awesome terminal program, and I'm pretty sure you can use it on Windows 7 and 8.", 'start': 511.409, 'duration': 7.027}, {'end': 521.839, 'text': "it's just been so long since I've used those operating systems.", 'start': 518.436, 'duration': 3.403}, {'end': 524.963, 'text': 'But that should give you the SSH command.', 'start': 522.76, 'duration': 2.203}], 'summary': 'Puttygen used for key creation, putty for server connection. ssh command available on git bash for windows.', 'duration': 42.596, 'max_score': 482.367, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc482367.jpg'}, {'end': 571.523, 'src': 'embed', 'start': 545.026, 'weight': 5, 'content': [{'end': 553.034, 'text': 'how to create SSH keys for GitHub and add those to your GitHub account, and maybe a couple other things as well.', 'start': 545.026, 'duration': 8.008}, {'end': 555.096, 'text': "So let's go ahead and get started with that.", 'start': 553.154, 'duration': 1.942}, {'end': 557.418, 'text': "All right, guys, so we're going to get started now.", 'start': 555.677, 'duration': 1.741}, {'end': 565.641, 'text': "I'm going to be typing in a ton of commands, so I'm going to put a gist file in the description so that you guys have all the commands as a reference.", 'start': 557.518, 'duration': 8.123}, {'end': 571.523, 'text': "So if you if you're following along or if you just want it as a reference for future projects or whatever.", 'start': 565.921, 'duration': 5.602}], 'summary': 'Learn how to create ssh keys for github and add to your account.', 'duration': 26.497, 'max_score': 545.026, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc545026.jpg'}, {'end': 663.713, 'src': 'heatmap', 'start': 626.821, 'weight': 0.931, 'content': [{'end': 633, 'text': 'In this case, the IP address is 192.168.1.29.', 'start': 626.821, 'duration': 6.179}, {'end': 635.984, 'text': "Alright, so once I do that, we're going to get this message.", 'start': 633.001, 'duration': 2.983}, {'end': 639.447, 'text': "And you're only going to see this the first time you try to SSH into a server.", 'start': 636.004, 'duration': 3.443}, {'end': 643.071, 'text': "And if we say yes, it's just going to add us to the known host file.", 'start': 639.928, 'duration': 3.143}, {'end': 645.853, 'text': "Now it's going to ask us for a password to authenticate.", 'start': 643.511, 'duration': 2.342}, {'end': 649.597, 'text': 'So this would be the password for Brad on this system, on the server.', 'start': 645.913, 'duration': 3.684}, {'end': 652.86, 'text': "Not the machine I'm on, not my local machine.", 'start': 650.357, 'duration': 2.503}, {'end': 663.713, 'text': 'okay, so now you can see we get greeted with this little welcome page and it just tells us, like the the server version so 18.04.', 'start': 656.03, 'duration': 7.683}], 'summary': 'The ip address is 192.168.1.29, ssh into server, greeted with server version 18.04.', 'duration': 36.892, 'max_score': 626.821, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc626821.jpg'}], 'start': 254.157, 'title': 'Ssh authentication and usage', 'summary': 'Covers ssh authentication methods, such as password-based and key-based, emphasizing the benefits of ssh keys. it also discusses using ssh on windows and linux, including local and remote server usage and transitioning from putty to git bash.', 'chapters': [{'end': 457.633, 'start': 254.157, 'title': 'Ssh authentication and key generation', 'summary': 'Discusses ssh authentication methods, including password-based authentication and ssh key generation, highlighting the benefits of using ssh keys over passwords and the process of generating and using public and private keys for secure server authentication.', 'duration': 203.476, 'highlights': ['SSH key generation provides a safer alternative to password-based authentication, as passwords are susceptible to brute force attacks. Highlighting the security benefits of SSH key generation over password-based authentication.', "The process of generating SSH keys involves running the ssh-keygen command, which creates a public key and a private key by default in the user's home folder. Explaining the process of generating SSH keys using the ssh-keygen command and the default location of the keys.", 'The public key generated should be placed in the authorized_keys file within the .ssh folder on the server to authorize secure authentication using SSH keys. Describing the placement of the public key within the .ssh folder on the server to enable secure authentication using SSH keys.']}, {'end': 779.611, 'start': 457.653, 'title': 'Using ssh for windows and linux', 'summary': 'Discusses the availability of ssh on windows and the usage of ssh command for logging into a local server, including creating and managing directories and files, as well as its applicability to remote servers and github, with emphasis on the transition from putty to git bash.', 'duration': 321.958, 'highlights': ['SSH command was not natively available on older versions of Windows, requiring the use of PuTTY and PuTTYgen for connecting to servers, which was considered cumbersome. PuTTY and PuTTYgen were used on older Windows versions to create keys and connect to servers, which was cumbersome compared to using SSH natively.', 'Transitioning to Git Bash for Windows as an alternative to PuTTY for using the SSH command, which provides a better terminal experience. Suggests using Git Bash as an alternative to PuTTY for Windows users to utilize the SSH command, providing a better terminal experience.', 'Demonstrating the usage of SSH command for logging into a local server, including the process of adding SSH keys to GitHub for server interaction. Demonstrates the usage of SSH command for logging into a local server and adding SSH keys to GitHub for server interaction.', 'Illustrating the capabilities of SSH for managing directories and files on a server, showcasing the creation, navigation, and removal of folders and files. Illustrates the capabilities of SSH for managing directories and files on a server, including creation, navigation, and removal of folders and files.']}], 'duration': 525.454, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc254157.jpg', 'highlights': ['SSH key generation provides a safer alternative to password-based authentication, highlighting the security benefits of SSH key generation over password-based authentication.', 'The process of generating SSH keys involves running the ssh-keygen command, explaining the process of generating SSH keys using the ssh-keygen command and the default location of the keys.', 'The public key generated should be placed in the authorized_keys file within the .ssh folder on the server to authorize secure authentication using SSH keys, describing the placement of the public key within the .ssh folder on the server to enable secure authentication using SSH keys.', 'Transitioning to Git Bash for Windows as an alternative to PuTTY for using the SSH command, which provides a better terminal experience, suggesting using Git Bash as an alternative to PuTTY for Windows users to utilize the SSH command, providing a better terminal experience.', 'Illustrating the capabilities of SSH for managing directories and files on a server, showcasing the creation, navigation, and removal of folders and files, illustrating the capabilities of SSH for managing directories and files on a server, including creation, navigation, and removal of folders and files.', 'Demonstrating the usage of SSH command for logging into a local server, including the process of adding SSH keys to GitHub for server interaction, demonstrating the usage of SSH command for logging into a local server and adding SSH keys to GitHub for server interaction.', 'SSH command was not natively available on older versions of Windows, requiring the use of PuTTY and PuTTYgen for connecting to servers, which was considered cumbersome, PuTTY and PuTTYgen were used on older Windows versions to create keys and connect to servers, which was cumbersome compared to using SSH natively.']}, {'end': 1463.621, 'segs': [{'end': 907.415, 'src': 'embed', 'start': 879.908, 'weight': 3, 'content': [{'end': 889.261, 'text': 'OK, so once you install Apache, this will automatically be put into your VAR slash WWW slash HTML folder, which is your web route.', 'start': 879.908, 'duration': 9.353}, {'end': 898.969, 'text': 'OK. so just to show you that we can install stuff and we could access this IP address from anywhere on my local network, if I go down to my living room,', 'start': 889.902, 'duration': 9.067}, {'end': 907.415, 'text': "as long as it's on the same network, I can go ahead and I can access this, and we could create web applications locally if we wanted to and,", 'start': 898.969, 'duration': 8.446}], 'summary': 'Apache installation automatically places files in var/www/html for web access.', 'duration': 27.507, 'max_score': 879.908, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc879908.jpg'}, {'end': 1043.063, 'src': 'embed', 'start': 1012.844, 'weight': 5, 'content': [{'end': 1014.265, 'text': 'The private key is a little longer.', 'start': 1012.844, 'duration': 1.421}, {'end': 1016.666, 'text': "The private key you don't do anything with.", 'start': 1014.285, 'duration': 2.381}, {'end': 1018.047, 'text': 'You just keep it on your system.', 'start': 1016.706, 'duration': 1.341}, {'end': 1025.25, 'text': 'So now that we have this key on our local system, what we need to do is get this public key onto the server.', 'start': 1019.127, 'duration': 6.123}, {'end': 1036.796, 'text': 'So like I said in the slides, where this needs to go is into .ssh folder on the server and then in a file called Authorized Keys.', 'start': 1025.951, 'duration': 10.845}, {'end': 1043.063, 'text': "So I'm actually going to go to a DigitalOcean server documentation page real quick.", 'start': 1037.476, 'duration': 5.587}], 'summary': 'Securely transfer public key to server for authentication.', 'duration': 30.219, 'max_score': 1012.844, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc1012844.jpg'}, {'end': 1104.314, 'src': 'embed', 'start': 1080.073, 'weight': 1, 'content': [{'end': 1089.742, 'text': 'so basically, this is one long command, that or a couple commands that is going to first take the content of the, the public key file.', 'start': 1080.073, 'duration': 9.669}, {'end': 1091.864, 'text': "it's going to ssh into your server.", 'start': 1089.742, 'duration': 2.122}, {'end': 1095.607, 'text': "it's going to create a ssh folder on your server,", 'start': 1091.864, 'duration': 3.743}, {'end': 1104.314, 'text': "change the permissions and then it's going to put whatever is in that public key file inside of a file called authorized keys.", 'start': 1095.607, 'duration': 8.707}], 'summary': 'One command creates ssh folder, changes permissions, and adds public key to authorized keys.', 'duration': 24.241, 'max_score': 1080.073, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc1080073.jpg'}, {'end': 1355.113, 'src': 'embed', 'start': 1331.165, 'weight': 2, 'content': [{'end': 1338.927, 'text': "okay, so let's go ahead and run that all right, and then, if we log back into the server, i'm just going to Go like that.", 'start': 1331.165, 'duration': 7.762}, {'end': 1341.448, 'text': 'And we do an LS.', 'start': 1340.248, 'duration': 1.2}, {'end': 1342.549, 'text': "You'll see there it is.", 'start': 1341.728, 'duration': 0.821}, {'end': 1344.469, 'text': "There's our test.txt file.", 'start': 1342.589, 'duration': 1.88}, {'end': 1348.951, 'text': 'So we move that file from our local machine to our server very quickly.', 'start': 1344.509, 'duration': 4.442}, {'end': 1352.952, 'text': 'And you can easily do that with folders and files.', 'start': 1348.991, 'duration': 3.961}, {'end': 1355.113, 'text': "And there's a lot of different ways to do it.", 'start': 1353.012, 'duration': 2.101}], 'summary': 'Demonstrating file transfer from local machine to server, showing test.txt file, and discussing various ways to transfer files.', 'duration': 23.948, 'max_score': 1331.165, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc1331165.jpg'}, {'end': 1434.51, 'src': 'embed', 'start': 1406.886, 'weight': 0, 'content': [{'end': 1412.769, 'text': 'once you sign up, you just go to create droplet and you go down and you choose a package.', 'start': 1406.886, 'duration': 5.883}, {'end': 1416.932, 'text': "okay, so i'm actually going to give you a link in the description for ten dollars.", 'start': 1412.769, 'duration': 4.163}, {'end': 1422.415, 'text': 'so you get free ten dollars and you can choose the first package here, which is five dollars per month.', 'start': 1416.932, 'duration': 5.483}, {'end': 1430.784, 'text': "so that link will give you two free months of hosting And the $5 per month obviously isn't good for like a big production app,", 'start': 1422.415, 'duration': 8.369}, {'end': 1434.51, 'text': "but for testing for stuff like that, it's absolutely fine.", 'start': 1430.784, 'duration': 3.726}], 'summary': 'Sign up for a $5 per month package and get two free months with a referral link.', 'duration': 27.624, 'max_score': 1406.886, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc1406886.jpg'}], 'start': 779.611, 'title': 'Setting up apache server and remote server management', 'summary': "Covers setting up an apache server, creating ssh keys, managing remote server files, and offers $10 free credit for two months of hosting on digitalocean's $5 per month package.", 'chapters': [{'end': 1104.314, 'start': 779.611, 'title': 'Setting up apache server and ssh keys', 'summary': 'Covers setting up an apache server on a local network, accessing web applications, and creating ssh keys for secure access, with a tutorial on generating and transferring public keys to the server.', 'duration': 324.703, 'highlights': ['Setting up Apache server on local network for web applications Explains the installation process of Apache server, enabling access to web applications on the local network.', 'Creating and transferring SSH keys for secure server access Provides a tutorial on generating SSH keys and transferring the public key to the server for secure access.', 'Tutorial on generating and transferring public keys to the server Discusses the process of generating public keys and transferring them to the server for secure access, with a tutorial on the command-line commands involved.']}, {'end': 1463.621, 'start': 1104.314, 'title': 'Remote server management and file transfer', 'summary': 'Demonstrates setting up ssh key for passwordless login, managing files and folders on a remote server, and introduces digitalocean droplets for hosting, with a promotional offer of $10 free credit for two months hosting on the $5 per month package.', 'duration': 359.307, 'highlights': ['Setting up SSH key for passwordless login, allowing access to the server without entering a password, and verifying the key in the authorized_keys file.', 'Transferring files from local machine to the server using the secure copy command (scp) and verifying the successful transfer with ls command on the server.', 'Introduction to DigitalOcean droplets, a hosting service for deploying applications, offering various Linux distributions, and a promotional offer of $10 free credit for two months hosting on the $5 per month package.']}], 'duration': 684.01, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc779611.jpg', 'highlights': ['Introduction to DigitalOcean droplets, a hosting service for deploying applications, offering various Linux distributions, and a promotional offer of $10 free credit for two months hosting on the $5 per month package.', 'Setting up SSH key for passwordless login, allowing access to the server without entering a password, and verifying the key in the authorized_keys file.', 'Transferring files from local machine to the server using the secure copy command (scp) and verifying the successful transfer with ls command on the server.', 'Setting up Apache server on local network for web applications Explains the installation process of Apache server, enabling access to web applications on the local network.', 'Creating and transferring SSH keys for secure server access Provides a tutorial on generating SSH keys and transferring the public key to the server for secure access.', 'Tutorial on generating and transferring public keys to the server Discusses the process of generating public keys and transferring them to the server for secure access, with a tutorial on the command-line commands involved.']}, {'end': 1848.269, 'segs': [{'end': 1515.732, 'src': 'embed', 'start': 1486.84, 'weight': 0, 'content': [{'end': 1493.622, 'text': 'I could just take that public key and put it in here, but I like to keep keys separate for separate things.', 'start': 1486.84, 'duration': 6.782}, {'end': 1498.004, 'text': "So what I'm going to do is generate a new key for DigitalOcean.", 'start': 1494.243, 'duration': 3.761}, {'end': 1506.807, 'text': "So I'm going to do ssh-keygen and they want you to do this trsa and it's going to do the same thing.", 'start': 1498.464, 'duration': 8.343}, {'end': 1509.569, 'text': "It's going to ask us what we want to call it now.", 'start': 1506.847, 'duration': 2.722}, {'end': 1515.732, 'text': "if i, if i just hit enter, it's going to ask if i want to overwrite the current one, because i already have one called this.", 'start': 1509.569, 'duration': 6.163}], 'summary': 'Generate new key for digitalocean using ssh-keygen command.', 'duration': 28.892, 'max_score': 1486.84, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc1486840.jpg'}, {'end': 1602.085, 'src': 'embed', 'start': 1576.887, 'weight': 1, 'content': [{'end': 1586.529, 'text': "So we're just going to do cat and then let's make sure we get the DigitalOcean one, which is RSA underscore DO, and we want the public key of course.", 'start': 1576.887, 'duration': 9.642}, {'end': 1590.47, 'text': "Okay, so what I'm going to do is just grab that.", 'start': 1587.77, 'duration': 2.7}, {'end': 1593.531, 'text': "Make sure you don't leave any spaces at the end or the beginning.", 'start': 1590.65, 'duration': 2.881}, {'end': 1596.261, 'text': "It has to be exact, so I'm going to copy it.", 'start': 1594.48, 'duration': 1.781}, {'end': 1602.085, 'text': "I'm going to go New SSH Key, paste it in, and we'll just call this Key 1.", 'start': 1596.321, 'duration': 5.764}], 'summary': 'Adding rsa_do public key as key 1 for digitalocean.', 'duration': 25.198, 'max_score': 1576.887, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc1576887.jpg'}, {'end': 1680.122, 'src': 'embed', 'start': 1652.984, 'weight': 2, 'content': [{'end': 1655.945, 'text': 'But you can see we can launch a console in the browser.', 'start': 1652.984, 'duration': 2.961}, {'end': 1658.186, 'text': 'We can reset the root password.', 'start': 1656.325, 'duration': 1.861}, {'end': 1659.887, 'text': 'We can power it off.', 'start': 1658.586, 'duration': 1.301}, {'end': 1662.588, 'text': 'We can resize it.', 'start': 1661.647, 'duration': 0.941}, {'end': 1670.931, 'text': "So if you have a production app and it's getting too big for, let's say, the memory you have or the disk size, you can upgrade that easily.", 'start': 1662.648, 'duration': 8.283}, {'end': 1674.092, 'text': 'And same with CPU, stuff like that.', 'start': 1670.951, 'duration': 3.141}, {'end': 1678.159, 'text': "There's also backups, recovery, you can take snapshots.", 'start': 1675.075, 'duration': 3.084}, {'end': 1680.122, 'text': "So it's a really great service.", 'start': 1678.46, 'duration': 1.662}], 'summary': 'The cloud service allows easy resizing, resetting, and powering off of instances, with the ability to take snapshots and backups.', 'duration': 27.138, 'max_score': 1652.984, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc1652984.jpg'}, {'end': 1784.238, 'src': 'heatmap', 'start': 1707.606, 'weight': 4, 'content': [{'end': 1708.667, 'text': 'And paste that in.', 'start': 1707.606, 'duration': 1.061}, {'end': 1711.008, 'text': "And let's see what happens.", 'start': 1708.687, 'duration': 2.321}, {'end': 1712.049, 'text': 'So we get this message.', 'start': 1711.028, 'duration': 1.021}, {'end': 1713.009, 'text': 'We want to say yes.', 'start': 1712.069, 'duration': 0.94}, {'end': 1717.091, 'text': "And then we're going to get this permission denied public key.", 'start': 1714.33, 'duration': 2.761}, {'end': 1719.853, 'text': 'So you may or may not get this.', 'start': 1717.712, 'duration': 2.141}, {'end': 1727.237, 'text': "The reason we're getting this is because we used a new key called IDRSA DO.", 'start': 1720.073, 'duration': 7.164}, {'end': 1731.94, 'text': 'So what we need to do now is just run SSH dash add.', 'start': 1727.397, 'duration': 4.543}, {'end': 1737.522, 'text': 'and then we want the location of the key and then the name of the key.', 'start': 1733.521, 'duration': 4.001}, {'end': 1745.266, 'text': 'so we want to do home slash dot ssh slash id underscore.', 'start': 1737.522, 'duration': 7.744}, {'end': 1749.829, 'text': "rsa underscore do now, we don't want to do the dot pub here.", 'start': 1745.266, 'duration': 4.563}, {'end': 1753.39, 'text': "when we do the ssh add, you're just adding the key like this.", 'start': 1749.829, 'duration': 3.561}, {'end': 1755.792, 'text': "so let's run that and it says identity added.", 'start': 1753.39, 'duration': 2.402}, {'end': 1763.271, 'text': "okay. so now we're going to go and we're going to try again to ssh into our server And now it works.", 'start': 1755.792, 'duration': 7.479}, {'end': 1768.133, 'text': 'OK, so we get this little message just like we did on the local server.', 'start': 1763.291, 'duration': 4.842}, {'end': 1770.814, 'text': 'It is using 16.04, not the latest.', 'start': 1768.173, 'duration': 2.641}, {'end': 1776.375, 'text': "But you can see right here we're logged in as root at Ubuntu, whatever, a bunch of gibberish.", 'start': 1771.714, 'duration': 4.661}, {'end': 1778.896, 'text': "So we're now on our DigitalOcean server.", 'start': 1776.855, 'duration': 2.041}, {'end': 1779.556, 'text': "It's that easy.", 'start': 1778.936, 'duration': 0.62}, {'end': 1781.197, 'text': "So I'm going to clear this up.", 'start': 1779.576, 'duration': 1.621}, {'end': 1783.177, 'text': "If I do an LS, there's nothing here.", 'start': 1781.457, 'duration': 1.72}, {'end': 1784.238, 'text': 'We can go to the root.', 'start': 1783.237, 'duration': 1.001}], 'summary': 'Resolved permission denied public key issue and successfully accessed the digitalocean server using ssh.', 'duration': 29.916, 'max_score': 1707.606, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc1707606.jpg'}, {'end': 1788.659, 'src': 'embed', 'start': 1763.291, 'weight': 3, 'content': [{'end': 1768.133, 'text': 'OK, so we get this little message just like we did on the local server.', 'start': 1763.291, 'duration': 4.842}, {'end': 1770.814, 'text': 'It is using 16.04, not the latest.', 'start': 1768.173, 'duration': 2.641}, {'end': 1776.375, 'text': "But you can see right here we're logged in as root at Ubuntu, whatever, a bunch of gibberish.", 'start': 1771.714, 'duration': 4.661}, {'end': 1778.896, 'text': "So we're now on our DigitalOcean server.", 'start': 1776.855, 'duration': 2.041}, {'end': 1779.556, 'text': "It's that easy.", 'start': 1778.936, 'duration': 0.62}, {'end': 1781.197, 'text': "So I'm going to clear this up.", 'start': 1779.576, 'duration': 1.621}, {'end': 1783.177, 'text': "If I do an LS, there's nothing here.", 'start': 1781.457, 'duration': 1.72}, {'end': 1784.238, 'text': 'We can go to the root.', 'start': 1783.237, 'duration': 1.001}, {'end': 1786.518, 'text': 'And you can see all the root folders.', 'start': 1784.998, 'duration': 1.52}, {'end': 1788.659, 'text': "OK, let's go back to the home.", 'start': 1786.538, 'duration': 2.121}], 'summary': 'Accessed digitalocean server using 16.04, as root user, navigated through directories.', 'duration': 25.368, 'max_score': 1763.291, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc1763291.jpg'}, {'end': 1848.269, 'src': 'embed', 'start': 1816.573, 'weight': 5, 'content': [{'end': 1820.536, 'text': 'And then we can run sudo apt upgrade to actually upgrade the software.', 'start': 1816.573, 'duration': 3.963}, {'end': 1832.864, 'text': "I mean, I didn't have to do this for the tutorial, but it's something that you should do once you create your server, just so everything's up to date.", 'start': 1825.659, 'duration': 7.205}, {'end': 1838.028, 'text': 'So then you would do sudo apt upgrade.', 'start': 1834.445, 'duration': 3.583}, {'end': 1842.744, 'text': 'Should have did yes, the yes flag.', 'start': 1840.922, 'duration': 1.822}, {'end': 1848.269, 'text': "All right, so that'll upgrade everything.", 'start': 1842.764, 'duration': 5.505}], 'summary': "Run 'sudo apt upgrade' to upgrade software after creating a server.", 'duration': 31.696, 'max_score': 1816.573, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc1816573.jpg'}], 'start': 1464.102, 'title': 'Ssh key setup and server login', 'summary': 'Details the process of generating and adding ssh keys for digitalocean, including the creation of a new key, adding it to the digitalocean account, and setting up a server or droplet, as well as the process of logging into a digitalocean server via ssh, including the use of ssh keys, resolving permission issues, and updating server packages.', 'chapters': [{'end': 1680.122, 'start': 1464.102, 'title': 'Setting up ssh keys for digitalocean', 'summary': 'Details the process of generating and adding ssh keys for digitalocean, including the creation of a new key, adding it to the digitalocean account, and setting up a server or droplet with various management options.', 'duration': 216.02, 'highlights': ['The chapter details the process of generating and adding SSH keys for DigitalOcean. The chapter provides a step-by-step guide on the process of generating and adding SSH keys for DigitalOcean.', 'The creation of a new key for DigitalOcean is described, with specific instructions on naming and generation using ssh-keygen. It outlines the creation of a new key for DigitalOcean, including specific instructions on naming and generation using ssh-keygen.', 'The process of adding the public key to DigitalOcean account is explained, along with the method of copying and pasting the key in the interface. It explains the process of adding the public key to the DigitalOcean account, including the method of copying and pasting the key in the interface.', 'The setup of a server or droplet on DigitalOcean, along with various management options such as resizing, backups, and snapshots, is highlighted. It highlights the setup of a server or droplet on DigitalOcean, along with various management options such as resizing, backups, and snapshots.']}, {'end': 1848.269, 'start': 1680.182, 'title': 'Logging into digitalocean server via ssh', 'summary': 'Details the process of logging into a digitalocean server via ssh, including the use of ssh keys, resolving permission issues, and updating server packages.', 'duration': 168.087, 'highlights': ['Logging into the DigitalOcean server via SSH The narrator demonstrates the process of logging into the DigitalOcean server using SSH and SSH keys to access the root user.', "Resolving permission denied public key issue The narrator encounters a permission denied public key issue due to the use of a new key and resolves it by running 'ssh-add' with the location and name of the key, successfully logging into the server afterward.", "Updating server packages with 'sudo apt update' and 'sudo apt upgrade' The chapter emphasizes the importance of updating server packages by running 'sudo apt update' to fetch the latest package information and 'sudo apt upgrade' to upgrade the software to the latest version."]}], 'duration': 384.167, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc1464102.jpg', 'highlights': ['The creation of a new key for DigitalOcean is described, with specific instructions on naming and generation using ssh-keygen.', 'The process of adding the public key to DigitalOcean account is explained, along with the method of copying and pasting the key in the interface.', 'The setup of a server or droplet on DigitalOcean, along with various management options such as resizing, backups, and snapshots, is highlighted.', 'Logging into the DigitalOcean server via SSH The narrator demonstrates the process of logging into the DigitalOcean server using SSH and SSH keys to access the root user.', "Resolving permission denied public key issue The narrator encounters a permission denied public key issue due to the use of a new key and resolves it by running 'ssh-add' with the location and name of the key, successfully logging into the server afterward.", "Updating server packages with 'sudo apt update' and 'sudo apt upgrade' The chapter emphasizes the importance of updating server packages by running 'sudo apt update' to fetch the latest package information and 'sudo apt upgrade' to upgrade the software to the latest version."]}, {'end': 2283.29, 'segs': [{'end': 1998.268, 'src': 'embed', 'start': 1967.08, 'weight': 2, 'content': [{'end': 1974.428, 'text': 'You want to add these flags and then pseudo and then the user name that you want to add the privileges for, which is Brad.', 'start': 1967.08, 'duration': 7.348}, {'end': 1980.955, 'text': "OK, once we do that, if I do ID Brad again, you'll see this pseudo right here.", 'start': 1975.071, 'duration': 5.884}, {'end': 1982.537, 'text': "OK, so that's what we want.", 'start': 1981.516, 'duration': 1.021}, {'end': 1985.319, 'text': 'So now what I want to do is log in as Brad.', 'start': 1983.417, 'duration': 1.902}, {'end': 1998.268, 'text': "So I'm going to exit out of my DigitalOcean server and let's clear this up and let's try to SSH in SSH with Brad at and then whatever the IP is.", 'start': 1985.339, 'duration': 12.929}], 'summary': 'Adding privileges for user brad and logging in as brad for ssh access.', 'duration': 31.188, 'max_score': 1967.08, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc1967080.jpg'}, {'end': 2141.694, 'src': 'embed', 'start': 2111.909, 'weight': 4, 'content': [{'end': 2115.634, 'text': 'And we need to get this key into the authorized keys file.', 'start': 2111.909, 'duration': 3.725}, {'end': 2123.665, 'text': "So what I'm going to do is sudo nano, which is a terminal-based text editor, and then authorized keys.", 'start': 2115.714, 'duration': 7.951}, {'end': 2126.463, 'text': 'Authorize keys.', 'start': 2125.082, 'duration': 1.381}, {'end': 2130.166, 'text': "Okay, so now I'm just going to paste in my key.", 'start': 2126.483, 'duration': 3.683}, {'end': 2132.387, 'text': "You can't see it all, but it is here.", 'start': 2130.806, 'duration': 1.581}, {'end': 2134.329, 'text': "If I go over, you'll see it's all here.", 'start': 2132.447, 'duration': 1.882}, {'end': 2141.694, 'text': "So I'm going to save this with Control X, say yes, enter, and now it should be in there.", 'start': 2134.369, 'duration': 7.325}], 'summary': 'Add ssh key to authorized keys file using sudo nano.', 'duration': 29.785, 'max_score': 2111.909, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc2111909.jpg'}, {'end': 2203.758, 'src': 'embed', 'start': 2173.839, 'weight': 1, 'content': [{'end': 2174.74, 'text': "so it's simple as that.", 'start': 2173.839, 'duration': 0.901}, {'end': 2178.134, 'text': 'So just remember your keys.', 'start': 2176.311, 'duration': 1.823}, {'end': 2184.383, 'text': "your public key, that's on your system, on your local system, just needs to be in the server's authorized keys file.", 'start': 2178.134, 'duration': 6.249}, {'end': 2185.425, 'text': "And then you're all set.", 'start': 2184.583, 'duration': 0.842}, {'end': 2191.889, 'text': 'So what I want to do now is I actually want to disable the root password login.', 'start': 2186.344, 'duration': 5.545}, {'end': 2195.331, 'text': "So remember I told you there's an SSHD config file.", 'start': 2191.949, 'duration': 3.382}, {'end': 2203.758, 'text': "So I'm going to do sudo nano sshd, not sshd, it's in the Etsy folder.", 'start': 2195.391, 'duration': 8.367}], 'summary': "To set up ssh, ensure the public key is in the server's authorized keys file and consider disabling root password login.", 'duration': 29.919, 'max_score': 2173.839, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc2173839.jpg'}, {'end': 2259.149, 'src': 'embed', 'start': 2231.119, 'weight': 0, 'content': [{'end': 2236.261, 'text': "And I just want to go down to, let's see, I want to look for a root login.", 'start': 2231.119, 'duration': 5.142}, {'end': 2239.673, 'text': 'Right here, permit root login.', 'start': 2238.072, 'duration': 1.601}, {'end': 2247.14, 'text': "So, right now you can attempt to log in as a root user with a password, but I'm going to set that to no,", 'start': 2240.374, 'duration': 6.766}, {'end': 2250.382, 'text': 'because that prevents brute force attacks and stuff like that.', 'start': 2247.14, 'duration': 3.242}, {'end': 2253.445, 'text': "And there's a lot of other stuff as well I'm not going to get into.", 'start': 2251.063, 'duration': 2.382}, {'end': 2259.149, 'text': "And then I'm going to make sure that password authentication is set to no, which it is already.", 'start': 2253.465, 'duration': 5.684}], 'summary': "Setting root login to 'no' for security against brute force attacks.", 'duration': 28.03, 'max_score': 2231.119, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc2231119.jpg'}], 'start': 1849.15, 'title': 'User privileges and ssh keys', 'summary': "Covers creating a new user with pseudo privileges, including the process of granting privileges to user 'brad', and setting up ssh keys for user authentication while disabling root password login to enhance security.", 'chapters': [{'end': 1985.319, 'start': 1849.15, 'title': 'Creating new user with pseudo privileges', 'summary': "Discusses the importance of creating a new user with pseudo privileges to run programs as root, disabling root login, and adding pseudo privileges to the new user 'brad', highlighting the process of creating the user and granting pseudo privileges.", 'duration': 136.169, 'highlights': ["Creating a new user 'Brad' with pseudo privileges to run programs as root.", 'Disabling root login to enhance security measures.', "Adding pseudo privileges to the user 'Brad' to allow running programs as root."]}, {'end': 2283.29, 'start': 1985.339, 'title': 'Setting up ssh keys and disabling root password login', 'summary': 'Discusses setting up ssh keys for user authentication, explaining the process of adding a public key to a server, creating an authorized keys file, and disabling root password login in the sshd_config file to enhance security.', 'duration': 297.951, 'highlights': ["Adding public key for user authentication The chapter emphasizes the importance of adding the public key to the specific user's SSH folder for SSH access, rather than adding it for the root user, to ensure proper user authentication.", 'Creating authorized keys file for user It explains the process of creating a directory and authorized keys file for the user, and pasting the public key into the authorized keys file for SSH access, enhancing user security.', "Disabling root password login for security It details the steps to edit the sshd_config file to set 'permit root login' to 'no' and 'password authentication' to 'no', thereby enhancing security by preventing brute force attacks and enforcing the use of SSH keys for root user login."]}], 'duration': 434.14, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc1849150.jpg', 'highlights': ['Disabling root password login for security', 'Adding public key for user authentication', "Creating a new user 'Brad' with pseudo privileges to run programs as root", "Adding pseudo privileges to the user 'Brad' to allow running programs as root", 'Creating authorized keys file for user']}, {'end': 3301.254, 'segs': [{'end': 2339.796, 'src': 'embed', 'start': 2317.645, 'weight': 0, 'content': [{'end': 2329.446, 'text': "And then once that's installed, We should be able to go to our IP address, which I'll grab right here in the browser and paste that in.", 'start': 2317.645, 'duration': 11.801}, {'end': 2330.527, 'text': 'And there we go.', 'start': 2330.047, 'duration': 0.48}, {'end': 2332.009, 'text': 'We have an Apache start page.', 'start': 2330.547, 'duration': 1.462}, {'end': 2333.43, 'text': 'So this is live now.', 'start': 2332.369, 'duration': 1.061}, {'end': 2338.294, 'text': "This is not no longer a local server that's on my my network.", 'start': 2333.49, 'duration': 4.804}, {'end': 2339.095, 'text': 'This is live.', 'start': 2338.334, 'duration': 0.761}, {'end': 2339.796, 'text': 'And we could.', 'start': 2339.175, 'duration': 0.621}], 'summary': 'Successfully installed apache and accessed live server via ip address.', 'duration': 22.151, 'max_score': 2317.645, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc2317645.jpg'}, {'end': 2478.112, 'src': 'embed', 'start': 2450.025, 'weight': 1, 'content': [{'end': 2455.126, 'text': "Permission denied public key because we don't have SSH keys set up with GitHub.", 'start': 2450.025, 'duration': 5.101}, {'end': 2456.967, 'text': "So let's go ahead and do that.", 'start': 2455.606, 'duration': 1.361}, {'end': 2461.088, 'text': "So we're going to do SSH dash key gen.", 'start': 2457.567, 'duration': 3.521}, {'end': 2469.71, 'text': 'dash T, RSA and then, like I said before, I like to create separate keys for separate services.', 'start': 2462.348, 'duration': 7.362}, {'end': 2473.191, 'text': 'we have one for the local server, we have one for DigitalOcean.', 'start': 2469.71, 'duration': 3.481}, {'end': 2474.651, 'text': "now let's create one for github.", 'start': 2473.191, 'duration': 1.46}, {'end': 2478.112, 'text': "so I'm gonna do and remember, we're not, we're on our server now.", 'start': 2474.651, 'duration': 3.461}], 'summary': 'Set up ssh keys for github using separate keys for different services.', 'duration': 28.087, 'max_score': 2450.025, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc2450025.jpg'}, {'end': 2978.399, 'src': 'embed', 'start': 2939.761, 'weight': 2, 'content': [{'end': 2944.567, 'text': 'To me, DevOps is, it can get more complicated than web development and coding.', 'start': 2939.761, 'duration': 4.806}, {'end': 2948.678, 'text': 'OK, so we have all of our dependencies installed.', 'start': 2946.578, 'duration': 2.1}, {'end': 2953.119, 'text': 'Now, we can run the dev server if we do npm start.', 'start': 2948.718, 'duration': 4.401}, {'end': 2955.5, 'text': 'It was built with Create React app.', 'start': 2953.479, 'duration': 2.021}, {'end': 2957.92, 'text': 'I do have a video where we created this application.', 'start': 2955.54, 'duration': 2.38}, {'end': 2962.441, 'text': "OK, so it'll start the development server.", 'start': 2957.94, 'duration': 4.501}, {'end': 2977.918, 'text': 'OK, now we can go to our IP address and then go to port 3000.', 'start': 2962.461, 'duration': 15.457}, {'end': 2978.399, 'text': 'And there it is.', 'start': 2977.918, 'duration': 0.481}], 'summary': 'Devops is complex, uses npm start, built with create react app, accessible at ip address and port 3000.', 'duration': 38.638, 'max_score': 2939.761, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc2939761.jpg'}, {'end': 3294.75, 'src': 'heatmap', 'start': 3259.751, 'weight': 0.798, 'content': [{'end': 3270.997, 'text': 'whatever you want php lamp stack so hopefully this tutorial helped you in terms of ssh, so you learned how to log in, how to create keys,', 'start': 3259.751, 'duration': 11.246}, {'end': 3279.862, 'text': 'how to deal with like um, you know adding keys and stuff like that, permissions and and a bunch of other stuff.', 'start': 3270.997, 'duration': 8.865}, {'end': 3289.447, 'text': "so in setting up github, which is very important and again, if you want github keys set up for your local machine, you'd have to add that as well,", 'start': 3279.862, 'duration': 9.585}, {'end': 3294.75, 'text': "so you can, so you don't have to add a password or anything or use https.", 'start': 3289.447, 'duration': 5.303}], 'summary': 'Tutorial covers ssh login, key creation, github setup for local machine.', 'duration': 34.999, 'max_score': 3259.751, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc3259751.jpg'}], 'start': 2283.29, 'title': 'Setting up apache, github, ssh keys, and react app', 'summary': 'Covers setting up apache on a remote server, accessing it via ip, deploying a react application, setting up ssh keys for github, enabling successful cloning of a repository, deploying a react application with apache, and emphasizing the importance of devops knowledge and digitalocean droplets.', 'chapters': [{'end': 2423.955, 'start': 2283.29, 'title': 'Setting up apache and github on a remote server', 'summary': 'Covers setting up apache on a remote server and accessing it via ip, with future steps including deploying a react application and using github on the server.', 'duration': 140.665, 'highlights': ['Setting up Apache on a remote server and accessing it via IP address, resulting in a live Apache start page.', 'Future steps involve deploying a react application and using GitHub on the server, including creating keys for GitHub and cloning a repository.', 'Mention of the availability of a reference sheet for commands and the potential to add a domain through Digital Ocean for the server.']}, {'end': 2789.778, 'start': 2424.035, 'title': 'Setting up ssh keys for github', 'summary': 'Outlines the process of setting up ssh keys for github, including creating separate keys for different services, changing file ownership to resolve permission issues, and adding the key to github, ultimately enabling successful cloning of a repository.', 'duration': 365.743, 'highlights': ['Creating separate keys for different services The speaker emphasizes the importance of creating separate SSH keys for different services, such as local servers and DigitalOcean, to manage access and permissions effectively.', "Changing file ownership to resolve permission issues The process of changing the ownership of the .ssh folder from root to the user 'Brad' is crucial in resolving permission denied issues, demonstrated by using the 'chown' command recursively on the home/Brad directory.", 'Adding the key to GitHub The speaker demonstrates the process of adding the generated public key to GitHub by navigating to settings, SSH and GPG keys, and successfully adding the key to enable secure communication and access.']}, {'end': 3301.254, 'start': 2789.778, 'title': 'Setting up react application and deploying with apache', 'summary': 'Demonstrates setting up a react application, installing node.js, deploying the app with apache, and adding a domain, while emphasizing the importance of devops knowledge and the versatility of digitalocean droplets.', 'duration': 511.476, 'highlights': ['The chapter covers setting up a React application, installing node.js, and deploying the app with Apache, highlighting the process of building static assets and the importance of DevOps knowledge.', 'The tutorial emphasizes the versatility of DigitalOcean droplets for building various types of applications, including Django, Node.js, React, Angular, and PHP LAMP stack.', 'It also discusses adding a domain and configuring name servers for production use, showcasing the process of pointing name servers to digitalocean.com and adding DNS records for a domain.']}], 'duration': 1017.964, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQWRp-FdTpc/pics/hQWRp-FdTpc2283290.jpg', 'highlights': ['Setting up Apache on a remote server and accessing it via IP address, resulting in a live Apache start page.', 'Creating separate keys for different services to manage access and permissions effectively.', 'The chapter covers setting up a React application, installing node.js, and deploying the app with Apache, highlighting the process of building static assets and the importance of DevOps knowledge.']}], 'highlights': ['SSH can be used for a wide range of tasks including creating files, folders, installing programs, running programs, deploying applications for the web, and setting up web servers.', 'SSH is secure and encrypted, providing a safe way to communicate and perform tasks remotely, unlike protocols like telnet which are not encrypted and pose security risks.', 'The chapter covers the basics of SSH and its importance in web development, including logging into a local Ubuntu server, creating SSH keys for secure authentication, and accessing a remote DigitalOcean server for hosting applications.', 'Demonstrates how to create SSH keys to enable secure authentication without using passwords, by generating a set of private and public keys.', 'Explains the process of setting up SSH keys with GitHub, enabling users to clone repositories and perform other operations without entering their username and password.', 'Introduction to DigitalOcean droplets, a hosting service for deploying applications, offering various Linux distributions, and a promotional offer of $10 free credit for two months hosting on the $5 per month package.', 'The process of adding the public key to DigitalOcean account is explained, along with the method of copying and pasting the key in the interface.', 'The setup of a server or droplet on DigitalOcean, along with various management options such as resizing, backups, and snapshots, is highlighted.', 'The narrator demonstrates the process of logging into the DigitalOcean server using SSH and SSH keys to access the root user.', "Updating server packages with 'sudo apt update' and 'sudo apt upgrade' The chapter emphasizes the importance of updating server packages by running 'sudo apt update' to fetch the latest package information and 'sudo apt upgrade' to upgrade the software to the latest version."]}