====== SSH (Secure Shell) ====== SSH (Secure Shell) adalah protokol jaringan yang digunakan untuk komunikasi aman antar komputer. Semua data yang dikirim melalui SSH dienkripsi sehingga terlindungi dari penyadapan maupun serangan. SSH banyak dipakai untuk: * Mengelola server jarak jauh * Transfer file dengan aman * Membuat koneksi terenkripsi di jaringan publik ---- ===== Instalasi SSH Server (Ubuntu/Debian) ===== sudo apt update sudo apt install openssh-server === Mengecek status service === systemctl status ssh Output normalnya akan menunjukkan service **active (running)**. === Lokasi file konfigurasi utama === /etc/ssh/sshd_config /etc/ssh/sshd_config.d/ ---- ===== Menggunakan SSH ===== === Koneksi ke server === # Default port (22) ssh user@192.168.1.5 # Dengan port tertentu ssh user@192.168.1.5 -p 6222 === Menjalankan perintah langsung === # Menjalankan perintah di server ssh user@192.168.1.5 'ls -l' # Menjalankan script lokal di server ssh user@192.168.1.5 bash < script.sh # Kompres dan unduh file/folder dari server ssh user@192.168.1.5 "tar czf - ~/source" > output.tgz ---- ===== Transfer File dengan SCP ===== # Copy dari remote ke local scp user@server:/dir/file.ext ./dest/ # Copy dari local ke remote scp ./file.ext user@server:/dir/ # Copy folder (rekursif) scp -r user@server:/dir ./dest/ # Copy antar remote server scp user@server1:/file user@server2:/dir # Copy semua isi folder scp user@server:/dir/* ./ ---- ===== SSH Key ===== SSH Key memudahkan login tanpa password dengan sistem **public/private key**. === Membuat SSH Key === # RSA 4096 bit ssh-keygen -t rsa -b 4096 -C "your@mail.com" # Ed25519 (lebih modern & ringan) ssh-keygen -t ed25519 -C "comment's key" # Interaktif default ssh-keygen # Tentukan nama file key ssh-keygen -f ~/.ssh/custom_key === Operasi tambahan === # Buat public key dari private key ssh-keygen -y -f private.key > public.pub # Ubah komentar key ssh-keygen -c -f ~/.ssh/id_rsa # Ubah passphrase private key ssh-keygen -p -f ~/.ssh/id_rsa === Menyalin key ke server === ssh-copy-id user@server # Menyalin key tertentu ssh-copy-id -i ~/.ssh/id_rsa.pub user@server ==== Jenis Key ==== * rsa * ed25519 * dsa (lama, jarang dipakai) * ecdsa ==== Format Key ==== * PEM * PKCS8 ---- ===== File Konfigurasi SSH ===== ^ Path ^ Deskripsi | | /etc/ssh/ssh_config | Konfigurasi global (client) | | ~/.ssh/config | Konfigurasi user (client) | | ~/.ssh/id_{type} | Private key | | ~/.ssh/id_{type}.pub | Public key | | ~/.ssh/known_hosts | Daftar host yang dikenal | | ~/.ssh/authorized_keys | Public key yang diizinkan | ---- ===== Contoh Konfigurasi ~/.ssh/config ===== # Opsi global ForwardAgent yes ServerAliveInterval 60 Compression yes # Host tertentu Host example.com HostName example.com User username Port 22 IdentityFile ~/.ssh/id_rsa # ProxyJump jump.example.com # Gunakan bastion/jump host # Alias untuk koneksi cepat Host server1 HostName 192.168.1.10 User admin Port 2222 IdentityFile ~/.ssh/id_ed25519 === Menggunakan alias === ssh server1