Based on https://github.com/jasonheecs/ubuntu-server-setup with minor changes for Indonesian local repositoy
This is a setup script to automate the setup and provisioning of Ubuntu servers. It does the following:
- Change default repository to Indonesian Ubuntu Mirror
- Setup the timezone for the server (Default to "Asia/Jakarta")
- Update and upgrade server for first time
- Adds a new user account with sudo access
- Adds a public ssh key for the new user account
- Disables password authentication to the server
- Deny root login to the server
- Setup Uncomplicated Firewall
- Create Swap file based on machine's installed memory
- Install Network Time Protocol
SSH into your server and install git if it is not installed:
sudo apt-get update
sudo apt-get install git
Clone this repository into your home directory:
cd ~
git clone https://github.com/zezevavai/ubuntu-server-initial-setup.git
Run the setup script
cd ubuntu-server-initial-setup
./setup.sh
When the setup script is run, you will be prompted to enter the username and password of the new user account.
Following that, you will then be prompted to add a public ssh key (which should be from your local machine) for the new account. To generate an ssh key from your local machine:
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub
Finally, you will be prompted to specify a timezone for the server. It will be set to 'Asia/Jakarta' if you do not specify a value.
This setup script has been tested against Ubuntu 18.04.