
Pada tutorial ini kita akan membuat tampilan SSH server menjadi lebih profesional seperti layanan cloud atau hosting provider. Saat user melakukan login SSH, akan muncul:
- Banner keamanan sebelum login
- Informasi server setelah berhasil login
- Status memory, disk, uptime, dan CPU load
- Link panduan dan client area
Preview Hasil
☁️ Indonetsoft | System Dashboard ======================================================== Hostname : dbmaria OS Version : Ubuntu 22.04.5 LTS Kernel : 5.15.0-174-generic IP Address : 10.124.110.254 -------------------------------------------------------- Uptime : 2 minutes ======================================================== CPU Load : 0.25, 0.23, 0.09 Memory : [||.............] 15% (0.3 G / 1.9 G) Disk Usage : [|..............] 9% (1.7G / 20G) ======================================================== 💡 Panduan : https://indonetsoft.com/panduan 💡 Client Area : https://office.indonetsoft.com ========================================================
1. Membuat Banner SSH Sebelum Login
Banner SSH digunakan untuk menampilkan informasi atau peringatan keamanan sebelum user memasukkan password login.
Banner ini sangat umum digunakan pada server production, VPS perusahaan, hosting provider, dan infrastruktur enterprise.
Edit File Banner
sudo nano /etc/issue.net Masukkan isi berikut:
___ _ _ __ _
|_ _|_ __ __| | ___ _ __ ___| |_ ___ ___ / _| |_
| || '_ \ / _` |/ _ \| '_ \ / _ \ __/ __|/ _ \ |_| __|
| || | | | (_| | (_) | | | | __/ |_\__ \ __/ _| |_
|___|_| |_|\__,_|\___/|_| |_|\___|\__|___/\___|_| \__|
>>> AUTHORIZED ACCESS ONLY <<<
Unauthorized access is prohibited.
Activity may be monitored and logged.
https://office.indonetsoft.com
https://indonetsoft.com/panduan
Aktifkan Banner SSH
sudo nano /etc/ssh/sshd_config Cari atau tambahkan baris berikut:
Banner /etc/issue.net Restart Service SSH
sudo systemctl restart ssh 2. Membuat Dashboard Setelah Login SSH
Setelah user berhasil login, kita akan menampilkan dashboard system monitoring sederhana menggunakan Bash script.
Buat File Dashboard
sudo nano /etc/profile.d/indonetsoft-dashboard.sh Isi dengan script berikut:
#!/bin/bash
# Skip non-interactive shell
[[ $- != *i* ]] && return
HOSTNAME=$(hostname)
OS=$(grep PRETTY_NAME /etc/os-release | cut -d= -f2 | tr -d '"')
KERNEL=$(uname -r)
IP=$(hostname -I | awk '{print $1}')
UPTIME=$(uptime -p | sed 's/up //')
LOAD=$(cat /proc/loadavg | awk '{print $1", "$2", "$3}')
# Memory
MEM_USED=$(free -h | awk '/Mem:/ {print $3}')
MEM_TOTAL=$(free -h | awk '/Mem:/ {print $2}')
MEM_PERCENT=$(free | awk '/Mem:/ {printf("%.0f"), $3/$2 * 100}')
# Disk
DISK_USED=$(df -h / | awk 'NR==2 {print $3}')
DISK_TOTAL=$(df -h / | awk 'NR==2 {print $2}')
DISK_PERCENT=$(df -h / | awk 'NR==2 {print $5}' | tr -d '%')
# Progress Bar Function
bar() {
local percent=$1
local filled=$((percent / 7))
local empty=$((15 - filled))
printf "["
printf "%0.s|" $(seq 1 $filled)
printf "%0.s." $(seq 1 $empty)
printf "]"
}
clear
echo " ☁️ Indonetsoft | System Dashboard"
echo " ========================================================"
printf " %-13s: %s\n" "Hostname" "$HOSTNAME"
printf " %-13s: %s\n" "OS Version" "$OS"
printf " %-13s: %s\n" "Kernel" "$KERNEL"
printf " %-13s: %s\n" "IP Address" "$IP"
echo " --------------------------------------------------------"
printf " %-13s: %s\n" "Uptime" "$UPTIME"
echo " ========================================================"
printf " %-13s: %s\n" "CPU Load" "$LOAD"
printf " %-13s: " "Memory"
bar $MEM_PERCENT
printf " %s%% (%s / %s)\n" "$MEM_PERCENT" "$MEM_USED" "$MEM_TOTAL"
printf " %-13s: " "Disk Usage"
bar $DISK_PERCENT
printf " %s%% (%s / %s)\n" "$DISK_PERCENT" "$DISK_USED" "$DISK_TOTAL"
echo " ========================================================"
echo " 💡 Panduan : https://indonetsoft.com/panduan"
echo " 💡 Client Area : https://office.indonetsoft.com"
echo " ========================================================"
echo
Berikan Permission Execute
sudo chmod +x /etc/profile.d/indonetsoft-dashboard.sh 3. Testing Login SSH
Setelah semua selesai, silakan logout lalu login kembali menggunakan SSH:
ssh user@ip-server Jika berhasil, maka banner keamanan akan tampil sebelum password dimasukkan dan dashboard server akan muncul setelah login berhasil.
Tips Tambahan
Tambahkan Monitoring
- Status MariaDB
- Status NGINX
- Docker Container
- Public IP
- CPU Temperature
Best Practice
- Jangan tampilkan informasi sensitif
- Gunakan warning legal
- Batasi informasi public
- Gunakan SSH key login
- Aktifkan Fail2Ban
