Instalasi Ubuntu Server 26.04 LTS sudah selesai di bab sebelumnya. Pertanyaan berikutnya sederhana: bagaimana cara kita mengakses server ini setiap hari? Server bukan laptop yang selalu ada di depan mata. Server biasanya duduk di rak data center, di cloud provider, atau di mesin virtual yang jauh dari meja kerja kita. Oleh karena itu, kita perlu jalur akses remote yang aman dan efisien sebelum masuk ke pembahasan konfigurasi lainnya.
Bab ini membahas tiga hal besar: login pertama ke server, SSH sebagai pintu utama administrasi, dan manajemen sesi remote agar pekerjaan kita tetap efisien walau koneksi terputus. Kita tutup dengan pembahasan console akses sebagai jalur darurat ketika SSH bermasalah.
3.1 Login Pertama ke Server
Begitu proses instalasi selesai dan server reboot, layar login berbasis teks akan menyambut kita. Di sinilah kita memakai akun yang kita buat saat instalasi lewat Subiquity di Chapter 2. Untuk mesin virtual, login pertama ini biasanya dilakukan lewat console bawaan hypervisor (VirtualBox, KVM, atau console VM dari cloud provider). Untuk server fisik, kita login lewat monitor dan keyboard yang tersambung langsung, atau lewat console jarak jauh semacam IPMI/iDRAC/iLO jika hardware pendukungnya tersedia.
Login pertama ini sifatnya sementara. Tujuan kita adalah mengambil informasi dasar dan memastikan server siap diakses lewat SSH, supaya sesi console tidak perlu dipakai lagi untuk pekerjaan sehari-hari.
Langkah Praktik
- Login dengan
usernamedan password yang dibuat saat instalasi. - Cek hostname server untuk memastikan konfigurasi awal sudah benar.
hostnamectl - Cek alamat IP yang didapat server, karena inilah alamat yang nanti dipakai untuk SSH dari komputer kita.
Perhatikan interface utama (biasanyaip aenp0s3,eth0, atau nama serupa) dan catat alamat IPv4-nya. - Perbarui daftar package dan sistem sebelum melangkah lebih jauh. Ini kebiasaan wajib setiap kali server baru pertama kali dinyalakan.
sudo apt update sudo apt upgrade -y - Pastikan
openssh-serversudah terpasang. Jika kita mencentang opsi "Install OpenSSH server" saat instalasi Subiquity, paket ini seharusnya sudah ada.
Jika belum muncul, pasang secara manual.dpkg -l | grep openssh-serversudo apt install openssh-server -y
Verifikasi dan Troubleshooting
- Output
hostnamectlharus menampilkan hostname yang sesuai dengan yang kita tentukan saat instalasi. Hostname kosong atau masih bernamalocalhostmenandakan konfigurasi awal belum sepenuhnya berhasil. - Jika
ip atidak menampilkan alamat IPv4 pada interface utama, server kemungkinan belum mendapat alamat dari DHCP, atau adapter jaringan virtual belum terhubung dengan benar. Cek pengaturan network adapter di hypervisor (untuk VM) sebelum melangkah lebih jauh. - Pastikan baris hasil
dpkg -l | grep openssh-serverdiawali kode statusii. Kode ini menandakan paket sudah terpasang penuh. Jika tidak ada baris yang muncul sama sekali, paketopenssh-servermemang belum terpasang dan perlu dipasang manual seperti langkah di atas.
Setelah alamat IP dan status SSH dipastikan, kita bisa menutup sesi console dan lanjut mengakses server lewat SSH dari komputer kita sendiri. Console tetap berguna sebagai jalur darurat, dan kita akan bahas secara lebih detail di bagian akhir bab ini.
3.2 SSH sebagai Pintu Utama Administrasi
Bayangkan server sebagai gedung kantor. Console akses yang kita pakai barusan itu seperti pintu belakang yang hanya bisa dibuka jika kita berdiri tepat di depannya. SSH adalah pintu utama, satu-satunya jalur yang dipakai untuk masuk dan keluar setiap hari, baik oleh kita sebagai Sysadmin maupun oleh Developer yang butuh deploy aplikasi. Karena statusnya sebagai pintu utama, SSH juga menjadi target nomor satu bagi Attacker yang mencoba masuk lewat brute force atau celah konfigurasi yang longgar.
SSH (Secure Shell) adalah protokol yang memungkinkan kita mengakses shell server dari jarak jauh melalui koneksi terenkripsi. Di sisi server, protokol ini dijalankan oleh daemon bernama sshd, yang dikelola lewat unit systemd bernama ssh.
Langkah Praktik: Menyalakan dan Memeriksa Layanan SSH
- Aktifkan layanan SSH agar otomatis berjalan saat boot.
sudo systemctl enable ssh - Periksa status layanan.
Jika layanan belum jalan, jalankan secara manual.sudo systemctl status sshsudo systemctl start ssh - Di Ubuntu Server 26.04, SSH memakai socket activation secara default. Artinya, unit
ssh.socketyang mengontrol port berapa SSH mendengarkan koneksi masuk, bukan langsungsshditu sendiri. Periksa statusnya.
Jika statusnyasystemctl status ssh.socketactive (listening), berarti socket activation sedang aktif. Detail ini penting nanti saat kita mengganti port SSH.
Dari komputer kita, coba login ke server memakai alamat IP yang sudah dicatat sebelumnya.
ssh username@alamat_ip_server3.2.1 Konfigurasi sshd_config
Konfigurasi utama SSH server tersimpan di /etc/ssh/sshd_config. Daripada langsung mengubah file ini, kebiasaan yang lebih aman dan lebih rapi adalah menaruh perubahan kita di direktori /etc/ssh/sshd_config.d/. File di dalam direktori ini dimuat lebih dulu sebelum sshd_config utama, sehingga kita bisa memisahkan pengaturan hardening kita sendiri dari konfigurasi bawaan sistem tanpa harus mengedit file aslinya.
Buat file konfigurasi baru untuk keperluan hardening.
sudo nano /etc/ssh/sshd_config.d/00-hardening.confNama file diawali angka 00- supaya file ini dibaca paling awal dibanding file lain di direktori yang sama. Sebelum menerapkan perubahan apa pun, selalu validasi sintaks konfigurasi terlebih dahulu.
sudo sshd -tJika tidak ada output yang tampil, berarti konfigurasi valid dan aman untuk diterapkan.
3.2.2 Autentikasi Berbasis Key vs Password
Password mudah ditebak lewat brute force, apalagi jika password yang dipakai lemah. Autentikasi berbasis key pair jauh lebih aman karena memakai sepasang kunci kriptografi: private key yang kita simpan rahasia di komputer sendiri, dan public key yang kita taruh di server.
Langkah Praktik
- Di komputer kita (bukan di server), buat key pair baru. Algoritma
ed25519menjadi pilihan standar karena ringkas, cepat, dan aman.
Tekan Enter untuk memakai lokasi default, lalu isi passphrase untuk mengamankan private key kita. Passphrase ini opsional, tetapi sangat disarankan.ssh-keygen -t ed25519 -C "[email protected]" - Salin public key ke server.
Perintah ini akan meminta password server untuk terakhir kalinya, lalu menaruh isi public key kita kessh-copy-id username@alamat_ip_server~/.ssh/authorized_keysdi server. - Uji login tanpa password.
Jika berhasil masuk tanpa diminta password server (hanya passphrase key jika kita mengisinya), autentikasi berbasis key sudah berjalan.ssh username@alamat_ip_server
3.2.3 Menonaktifkan Root Login dan Password Login
Setelah login berbasis key terbukti berjalan, kita bisa menutup dua celah paling umum: login root langsung lewat SSH, dan autentikasi berbasis password. Tambahkan baris berikut ke /etc/ssh/sshd_config.d/00-hardening.conf yang sudah kita buat.
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yesPermitRootLogin no memaksa siapa pun yang butuh akses administratif untuk login sebagai user biasa lalu naik privilege lewat sudo, bukan login langsung sebagai root. PasswordAuthentication no menutup jalur login memakai password, sehingga hanya key yang terdaftar di authorized_keys yang bisa dipakai masuk.
Sebelum restart layanan, validasi terlebih dahulu.
sudo sshd -tJangan pernah menutup sesi SSH yang sedang aktif sebelum memverifikasi konfigurasi baru berhasil. Buka jendela terminal baru untuk mencoba login, dan biarkan sesi lama tetap terbuka sebagai jalur cadangan jika ada kesalahan konfigurasi.
sudo systemctl restart sshCoba login dari terminal baru. Jika berhasil masuk memakai key dan percobaan login sebagai root ditolak, konfigurasi sudah berjalan sesuai rencana.
3.2.4 Port Kustom dan Pertimbangan Keamanan
Mengganti port default SSH dari 22 ke port lain bukan pengganti hardening di atas, tetapi bisa mengurangi jumlah percobaan login otomatis dari bot yang menyisir port 22 di internet. Ini murni soal mengurangi kebisingan log, bukan langkah keamanan utama.
Karena Ubuntu Server 26.04 memakai socket activation untuk SSH, mengubah baris Port di sshd_config saja tidak cukup. Unit ssh.socket tetap akan mendengarkan di port 22 selama override socket belum dibuat. Berikut langkah yang benar.
Langkah Praktik
- Buat override untuk unit
ssh.socket.sudo systemctl edit ssh.socket - Isi editor yang terbuka dengan konfigurasi berikut, ganti
2222sesuai port pilihan kita.
Baris[Socket] ListenStream= ListenStream=0.0.0.0:2222 ListenStream=[::]:2222ListenStream=kosong di awal berfungsi menghapus pengaturan port 22 bawaan sebelum menambahkan port baru. - Muat ulang konfigurasi systemd dan restart socket.
sudo systemctl daemon-reload sudo systemctl restart ssh.socket - Izinkan port baru di firewall sebelum memutus koneksi lama.
sudo ufw allow 2222/tcp comment 'SSH custom port' - Uji koneksi dari port baru.
ssh -p 2222 username@alamat_ip_server - Setelah port baru terbukti berjalan, baru hapus aturan firewall untuk port 22 jika memang tidak dipakai lagi.
sudo ufw delete allow 22/tcp
Verifikasi dan Troubleshooting
- Cek port yang sedang didengarkan SSH.
sudo ss -tlnp | grep ssh - Cek konfigurasi efektif yang sedang berjalan di
sshd.sudo sshd -T | grep -E "^(port|passwordauthentication|permitrootlogin)" - Connection refused biasanya berarti layanan
sshataussh.socketbelum aktif, atau firewall memblokir port yang dituju. - Permission denied (publickey) biasanya berarti public key belum ada di
authorized_keysserver, atau permission folder.sshterlalu longgar. Pastikan permission-nya benar.chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys - Jika terlanjur terkunci akibat kesalahan konfigurasi, jangan panik. Bagian 3.4 di bawah membahas jalur darurat lewat console akses.
3.3 Manajemen Sesi Remote
Koneksi SSH mudah terputus, entah karena WiFi goyah, laptop kita masuk mode sleep, atau koneksi internet kantor terputus sesaat. Jika kita sedang menjalankan proses panjang seperti instalasi paket besar atau migrasi database, proses itu ikut terhenti begitu koneksi SSH terputus. Di sinilah terminal multiplexer berperan.
3.3.1 tmux/screen untuk Sesi Persisten
tmux dan screen adalah tool yang membuat sesi terminal kita tetap berjalan di server meskipun koneksi SSH terputus. Sesi ini bisa kita tinggalkan (detach) lalu sambungkan kembali (reattach) kapan saja, bahkan dari komputer yang berbeda.
Langkah Praktik: tmux
- Pasang
tmuxjika belum tersedia.sudo apt install tmux -y - Buat sesi baru dengan nama tertentu, supaya mudah dikenali nanti.
tmux new -s deploy - Jalankan proses seperti biasa di dalam sesi ini.
- Untuk keluar tanpa menghentikan sesi, tekan
Ctrl+blalud. - Jika koneksi SSH terputus atau kita sengaja detach, sesi tetap berjalan di server. Untuk melihat daftar sesi yang aktif:
tmux ls - Sambungkan kembali ke sesi yang sama.
tmux attach -t deploy - Untuk mengakhiri sesi sepenuhnya, bukan sekadar detach, ketik
exitdi dalam sesi tersebut, atau hentikan dari luar sesi.tmux kill-session -t deploy
Di lapangan, memberi nama sesi yang jelas seperti deploy, backup-db, atau migrasi-app sangat membantu ketika ada banyak sesi tmux berjalan bersamaan di satu server. Nama generik seperti angka default dari tmux gampang membingungkan saat kita perlu reattach cepat di tengah insiden.
screen punya konsep serupa dan masih banyak dipakai di server lama.
sudo apt install screen -y
screen -S deployDetach dari sesi screen memakai Ctrl+a lalu d, dan reattach memakai screen -r deploy. Untuk mengakhiri sesi screen sepenuhnya, ketik exit di dalam sesi, atau jalankan screen -X -S deploy quit dari luar sesi.
3.3.2 Transfer File: scp, sftp, rsync
Selain menjalankan perintah, pekerjaan Sysadmin sehari-hari juga sering melibatkan pemindahan file antara komputer kita dan server, misalnya mengunggah file konfigurasi atau mengunduh hasil backup.
scp cocok untuk transfer file tunggal yang cepat dan sederhana.
scp laporan.txt username@alamat_ip_server:/home/username/sftp membuka sesi interaktif mirip FTP tetapi berjalan di atas SSH, cocok jika kita perlu menjelajah struktur folder server sebelum memutuskan file mana yang perlu diunggah atau diunduh.
sftp username@alamat_ip_serverDi dalam sesi sftp, kita bisa memakai perintah seperti ls, cd, get nama_file untuk mengunduh, dan put nama_file untuk mengunggah.
rsync menjadi pilihan terbaik untuk sinkronisasi folder besar atau backup rutin, karena hanya mengirim bagian file yang berubah, bukan seluruh file dari awal.
rsync -avz -e ssh /path/lokal/ username@alamat_ip_server:/path/tujuan/Opsi -a menjaga atribut file seperti permission dan timestamp, -v menampilkan detail proses, dan -z mengompresi data selama transfer.
Verifikasi dan Troubleshooting
- Jika
tmux attach -t deploymenampilkan pesanno server running on ..., sesi itu sudah tidak ada, biasanya karena server sempat reboot atau sesi memang sudah dihentikan sebelumnya. Semua proses yang berjalan di dalamnya ikut berhenti. - Proses di dalam sesi tmux/screen bisa berhenti sendiri walau sesinya tetap hidup, misalnya karena aplikasi di dalamnya crash. Cek log aplikasi yang bersangkutan, jangan asumsikan sesi yang aktif berarti prosesnya juga masih berjalan normal.
scpataursyncyang gagal dengan pesanPermission deniedbiasanya berarti user yang kita pakai tidak punya izin tulis di folder tujuan. Pastikan path tujuan memang bisa diakses oleh user tersebut.- Jika
rsyncgagal dengan pesancommand not found, paketrsyncbelum terpasang di sisi server. Pasang terlebih dahulu.sudo apt install rsync -y
3.4 Console Akses Sebagai Fallback
Bagaimana jika SSH sampai tidak bisa diakses sama sekali, misalnya karena kesalahan konfigurasi sshd_config.d yang menutup semua jalur masuk? Di sinilah console akses kembali berguna, bukan sebagai jalur harian, melainkan sebagai jalur darurat.
Untuk mesin virtual, kita bisa masuk lewat console bawaan hypervisor seperti VirtualBox atau virt-manager untuk KVM. Untuk server di cloud, sebagian besar provider menyediakan web console atau serial console lewat dashboard mereka, yang tetap bisa diakses walau SSH mati total.
Lewat console ini, kita bisa masuk sebagai user biasa (atau lewat mode recovery jika perlu), lalu memperbaiki file konfigurasi yang bermasalah.
sudo nano /etc/ssh/sshd_config.d/00-hardening.confSetelah perbaikan, validasi ulang dan restart layanan SSH seperti biasa sebelum mencoba login remote lagi.
sudo sshd -t
sudo systemctl restart sshKebiasaan menguji setiap perubahan konfigurasi SSH di sesi terpisah sebelum menutup sesi lama, seperti yang kita lakukan di bagian 3.2.3, adalah cara paling efektif mencegah kita sampai membutuhkan jalur darurat ini. Namun, jika situasi terlanjur terjadi, sekarang kita tahu jalan keluarnya.

