Skip to main content

How to create users for your EC2 Instance that can connect securely via ssh

Public and Private Keys for AWS Users





Create a normal user in AWS
sudo adduser username


How to add user in sudo group or wheel group
sudo usermod --groups sudo --append username


Allow user to run the sudo command without asking the password

root    ALL=(ALL)       ALL
username ALL=(ALL) NOPASSWD:ALL



Or you can add complete sudo or wheel group. The users under sudo or wheel group run sudo command with asking password to sudo users

%wheel ALL=(ALL) NOPASSWD:ALL
%sudo ALL=(ALL) NOPASSWD:ALL


To switch to the user directory

cd /home/username


Run the following command inside the user home directory to generate keys

ssh-keygen - b 4096 -f username -t rsa


To create the .ssh directory under user home directory
 mkdir .ssh


Give permission to the owner to read, write and execute (700) 
chmod 700 .ssh


To store public key in authorized_keys file (after exit from the username )

sudo cat username.pub >> .ssh/authorized_keys


so that the owner can read and write to the file 

chmod 600 .ssh/authorized_keys


To set the owner to  username and the group owner is centos 

sudo chown username:centos .ssh


To set the owner to and the group owner is centos
sudo chown username:centos .ssh/authorized_keys


To copy user 
sudo cp username /home/centos

OR 

sudo rsync -avr username /home/centos


so that all can read, write and execute 

sudo chmod 777 /home/centos/username


To Download the private key file to local pc (using your local terminal) 
scp -i /home/gautamthakur/Download/gautam-demo.pem centos@aws-public-ip:/home/centos/username username


After download the private key to the local PC. So that user can read. (If you have set the password at the time of created the key then provide the password)
chmod 400 username


To access you AWS Server from the local PC
sudo ssh -i private_key_just_created username@you_aws_public_ip


This key that you have created, you can now give that ti the person that you want to access your instance

If you added a password on your key like in demo, you would also need to give your user that password as well.

Popular posts from this blog

WordPress Site is not loading properly behind Google Cloud/AWS Load Balancer

Hello Guys, Today we are going to understand how can we fix a WordPress loading issue (CSS and JS loading issue) behind the Google Cloud Load Balancer or AWS Load Balancer. Generally, When we host a WordPress site directly with Google Cloud Compute Engine VM instance or AWS EC2 instance. It's loading perfectly fine. But once we added this WordPress server behind any Load Balancer either from GCP Load Balancer or AWS Load Balancer, you site will completely broken, means the CSS and JS of your site not loaded properly. The reason for this is - When you put a load balancer in front of WordPress, you need to modify wp-config.php to process the HTTP header HTTP_X_FORWARDED_PROTO to detect the protocol that the user is using and not the protocol the load balancer is using to connect to your backend. To fix this issue, we have to make following changes in the  wp-config.php  file and add the below code snippet on the top of  wp-config.php file - Google Cloud Platform Load Bal...

Git and GitHub Commands Mastery

1. Setup Git and GitHub Global Configuration  git config --global user.email "gautamthakur1983@gmail.com" git config --global user.name "Gautam Thakur" git config --global list git config --list 2. Git Lifecycle | Initilize, Status, Add, Commit git status git init git add git commit -m "Commit Message" git log git log --oneline 3. Git Difference between last commit changes and current version changes git diff 4. Git Compare between 2 different Git Commits git diff eac4c5b 82485b1 5. Git Statsh - To save some changes for temporary purpose ## Pop take out stash and clear but apply take out stash but not clear git stash (To save current changes for temporary) git stash pop (To take out all stash contents) git stash list git stash clear (To clear all the stash changes) git stash save "NAME"  git stash save "NAME1" (Working with multiple stash) git stash sapply 0 or 1 (0 for name, 1 for about) after that run git stash clear git stash clear 6...

How to Setup Kubernetes Cluster in Google Cloud Virtual Machine using "kubeadm"? | Ubuntu 20.04/22.04 LTS

  Hello Friends, In this post, we are going to setup Kubernetes Cluster on Virtual Machine in Google Cloud Platform using kubeadm tool. Hope this post will help you in Kubernetes learning Hand-On Labs (HOL). Requirements: Master Node: No. of VMs 1 Specifications - 2 vCPUs, 4GB RAM, 20 GB HDD (Balanced PD or SSD PD), Operating System (OS) Ubuntu 20.04 LTS x86/64, amd64  Firewall Rule - Ingress Allow 6443 (API Server) | 2379 (ETCD) | 10251 (Scheduler) | 10252 (Controller Manager) 10250 (Kubelet), sudo access with admin access  Worker Node: No. of VMs 2 Specifications - 2 vCPUs, 4GB RAM, 20 GB HDD (Balanced PD or SSD PD), Operating System (OS) Ubuntu 20.04 LTS x86/64, amd64  Firewall Rule - Ingress Allow 30000-32767 (Services) | 10250 (Kubelet),  sudo access with admin access  Disable Swap and comment fstab entry: First, Disable Swap and remove or comment the Swap entries from fstab file : sudo swapoff -a sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab Next...