How I setup my Digital Ocean Ubuntu 18.04 Server?
Quick setup note, all commands, no need to google anymore.
My personal note to setup ubuntu server, my old note is in Quiver.
Before creating a droplet, make sure to select the SSH-KEY that is used login to server.
To generate new key, use this command and input the path you want to store the new key.
ssh-keygen
After creating a droplet, ssh into server using
ssh -i ~/.ssh/ssh_key root@server_ip
Create a new user, for example ubuntu
adduser ubuntu
Make ubuntu a sudoer so that ubuntu
can be used instead of root
usermod -aG sudo ubuntu
Swap user to ubuntu
and copy ssh public key to ~/.ssh/authorized_keys
su ubuntu
cd ~
mkdir .ssh
vim authorized_keys # paste the ssh public key here
exit # back to root user
exit
again to close this session.
Try login using ubuntu
user. If done correctly, there should be no password prompt.
ssh -i ~/.ssh/ssh_key ubuntu@server_ip
make ubuntu
sudo without supplying password
sudo visudo
Add this line to the last part
ubuntu ALL=(ALL) NOPASSWD:ALL
ctrl+x
y
enter
to exit the editor
exit
to close the session.
SSH back in
ssh -i ~/.ssh/ssh_key ubuntu@server_ip
run sudo date
there should be no password prompt.
Now disable root ssh login
sudo vim /etc/ssh/sshd_config
Change PermitRootLogin yes
to PermitRootLogin no
Add a line AllowUsers ubuntu
to allow ubuntu
to login.
Then restart ssh.
sudo service ssh restart
Now exit
to close session again and test logging back in to server.
ssh -i ~/.ssh/ssh_key ubuntu@server_ip
Finally
sudo apt update
sudo apt upgrade
NOTE: To change SSH Port from 22 to something else
sudo vi /etc/ssh/sshd_config
Change Port 22
to the port you want.
Restart SSH sudo service ssh restart
and then to SSH, use
ssh -i ~/.ssh/ssh_key root@server_ip -p PORT
Done! Next, try using ansible
to setup other softwares.
Also checkout firewall before using in production.