Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| system:linux:ssh:main [2026/01/26 20:38] – removed - external edit (Unknown date) 127.0.0.1 | system:linux:ssh:main [2026/02/01 21:08] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== 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 | ||
| + | |||
| + | {{indexmenu>: | ||
| + | |||
| + | ===== Instalasi SSH Server (Ubuntu/ | ||
| + | |||
| + | <code bash> | ||
| + | sudo apt update | ||
| + | sudo apt install openssh-server | ||
| + | </ | ||
| + | |||
| + | === Mengecek status service === | ||
| + | <code bash> | ||
| + | systemctl status ssh | ||
| + | </ | ||
| + | |||
| + | Output normalnya akan menunjukkan service **active (running)**. | ||
| + | |||
| + | === Lokasi file konfigurasi utama === | ||
| + | < | ||
| + | / | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Menggunakan SSH ===== | ||
| + | |||
| + | === Koneksi ke server === | ||
| + | <code bash> | ||
| + | # Default port (22) | ||
| + | ssh [email protected] | ||
| + | |||
| + | # Dengan port tertentu | ||
| + | ssh [email protected] -p 6222 | ||
| + | </ | ||
| + | |||
| + | === Menjalankan perintah langsung === | ||
| + | <code bash> | ||
| + | # Menjalankan perintah di server | ||
| + | ssh [email protected] 'ls -l' | ||
| + | |||
| + | # Menjalankan script lokal di server | ||
| + | ssh [email protected] bash < script.sh | ||
| + | |||
| + | # Kompres dan unduh file/folder dari server | ||
| + | ssh [email protected] "tar czf - ~/ | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Transfer File dengan SCP ===== | ||
| + | <code bash> | ||
| + | # Copy dari remote ke local | ||
| + | scp user@server:/ | ||
| + | |||
| + | # Copy dari local ke remote | ||
| + | scp ./file.ext user@server:/ | ||
| + | |||
| + | # Copy folder (rekursif) | ||
| + | scp -r user@server:/ | ||
| + | |||
| + | # Copy antar remote server | ||
| + | scp user@server1:/ | ||
| + | |||
| + | # Copy semua isi folder | ||
| + | scp user@server:/ | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== SSH Key ===== | ||
| + | |||
| + | SSH Key memudahkan login tanpa password dengan sistem **public/ | ||
| + | |||
| + | === Membuat SSH Key === | ||
| + | <code bash> | ||
| + | # RSA 4096 bit | ||
| + | ssh-keygen -t rsa -b 4096 -C " | ||
| + | |||
| + | # Ed25519 (lebih modern & ringan) | ||
| + | ssh-keygen -t ed25519 -C " | ||
| + | |||
| + | # Interaktif default | ||
| + | ssh-keygen | ||
| + | |||
| + | # Tentukan nama file key | ||
| + | ssh-keygen -f ~/ | ||
| + | </ | ||
| + | |||
| + | === Operasi tambahan === | ||
| + | <code bash> | ||
| + | # Buat public key dari private key | ||
| + | ssh-keygen -y -f private.key > public.pub | ||
| + | |||
| + | # Ubah komentar key | ||
| + | ssh-keygen -c -f ~/ | ||
| + | |||
| + | # Ubah passphrase private key | ||
| + | ssh-keygen -p -f ~/ | ||
| + | </ | ||
| + | |||
| + | === Menyalin key ke server === | ||
| + | <code bash> | ||
| + | ssh-copy-id user@server | ||
| + | |||
| + | # Menyalin key tertentu | ||
| + | ssh-copy-id -i ~/ | ||
| + | </ | ||
| + | |||
| + | ==== Jenis Key ==== | ||
| + | * rsa | ||
| + | * ed25519 | ||
| + | * dsa (lama, jarang dipakai) | ||
| + | * ecdsa | ||
| + | |||
| + | ==== Format Key ==== | ||
| + | * PEM | ||
| + | * PKCS8 | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== File Konfigurasi SSH ===== | ||
| + | |||
| + | ^ Path ^ Deskripsi | ||
| + | | / | ||
| + | | ~/ | ||
| + | | ~/ | ||
| + | | ~/ | ||
| + | | ~/ | ||
| + | | ~/ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Contoh Konfigurasi ~/ | ||
| + | |||
| + | < | ||
| + | # Opsi global yang berlaku untuk semua host | ||
| + | |||
| + | # Mengaktifkan SSH agent forwarding untuk semua koneksi | ||
| + | ForwardAgent yes | ||
| + | |||
| + | # Mengirim paket keepalive setiap 60 detik untuk semua koneksi | ||
| + | ServerAliveInterval 60 | ||
| + | |||
| + | # Mengaktifkan kompresi untuk semua koneksi | ||
| + | Compression yes | ||
| + | |||
| + | # Konfigurasi khusus host contoh.com | ||
| + | Host example.com | ||
| + | HostName example.com | ||
| + | User username | ||
| + | Port 22 # Port yang digunakan untuk koneksi (default adalah 22) | ||
| + | IdentityFile ~/ | ||
| + | # ProxyJump jump.example.com | ||
| + | |||
| + | # Contoh mendefinisikan grup host (di-komentari) | ||
| + | # HostGroup web-servers | ||
| + | # Hostname 192.168.1.1 | ||
| + | # User webuser | ||
| + | # IdentityFile ~/ | ||
| + | |||
| + | # Alias spesifik host (di-komentari) | ||
| + | # Host db | ||
| + | # Hostname db.internal.example.com | ||
| + | # User dbadmin | ||
| + | # IdentityFile ~/ | ||
| + | |||
| + | # Opsi lanjutan untuk host tertentu | ||
| + | # Host github.com | ||
| + | # User git # Username alternatif untuk host ini | ||
| + | # PreferredAuthentications publickey | ||
| + | # CheckHostIP no # Tidak memeriksa alamat IP host remote | ||
| + | # StrictHostKeyChecking accept-new | ||
| + | # UserKnownHostsFile ~/ | ||
| + | |||
| + | # Contoh menggunakan wildcard untuk multiple hosts (di-komentari) | ||
| + | # Host *.example.net | ||
| + | # User admin | ||
| + | # Port 2222 | ||
| + | |||
| + | # Akhir dari file konfigurasi SSH client | ||
| + | </ | ||
| + | |||
| + | === Menggunakan alias === | ||
| + | <code bash> | ||
| + | ssh server1 | ||
| + | </ | ||