Perintah SSH: Cara Memakai Opsi -l, -p, -i dan Memeriksa Error Koneksi
Perintah SSH adalah perintah klien OpenSSH yang terhubung ke server Linux jarak jauh melalui koneksi terenkripsi dengan bentuk ssh akun@alamat-server dan menjalankan perintah di server yang dituju. Kami menjalankan ssh dari server AlmaLinux 9 ke server Debian 12 dan memeriksa secara berurutan mulai dari pemeriksaan kunci host pada koneksi pertama hingga opsi -l, -p, dan -i, menjalankan perintah jarak jauh, serta keluaran debug -v. Hasilnya, cara opsi benar-benar diterapkan bisa diperiksa lebih dulu dengan ssh -G tanpa terhubung.
Keluaran di bawah adalah hasil apa adanya dari kedua server. Alamat server dan akun, nama host, path dan sidik jari kunci, serta nomor versi OpenSSL dan kernel server yang terhubung diganti dengan nilai contoh. Server AlmaLinux yang terhubung memakai akun root, dan server Debian yang menerima koneksi memakai akun biasa.
1️⃣ Cara dasar menggunakan perintah SSH
Untuk masuk ke server jarak jauh, tulis nama akun dan alamat server setelah ssh, disambung dengan @. Setelah masuk, prompt berubah menjadi milik server yang dituju, dan mengetik exit akan memutus koneksi lalu kembali ke server asal.
ssh user@192.0.2.10Linux server2 6.1.0-53-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.187-1 (2026-09-07) x86_64
Last login: Wed Oct 28 20:27:41 2026 from 198.51.100.7
[user]:~$ whoami
user
[user]:~$ exit
exit
Connection to 192.0.2.10 closed.Server Debian yang kami tuju juga menampilkan beberapa baris pengumuman server (motd) dan pemberitahuan email saat masuk; hanya baris-baris itu yang dihapus dari keluaran di atas.
Saat pertama kali terhubung ke sebuah server, ssh menampilkan sidik jari kunci host server sebelum masuk dan menanyakan apakah koneksi dilanjutkan. Setelah mengetik yes, kunci host disimpan di ~/.ssh/known_hosts, lalu hasil whoami muncul.
ssh user@192.0.2.10 whoamiThe authenticity of host '192.0.2.10 (192.0.2.10)' can't be established.
ED25519 key fingerprint is SHA256:9fT2kL0qX8vN4cR1yB6sW3mZ7aH5dE0uJ2pG8oK1iVc.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.0.2.10' (ED25519) to the list of known hosts.
userSetelah kunci tersimpan di known_hosts, pertanyaan ini tidak muncul lagi saat terhubung ke server yang sama. Jika sidik jari berbeda dari nilai yang Anda terima dari administrator server, ketik no. Setelah mengetik no, ssh berhenti tanpa terhubung.
ssh user@192.0.2.10The authenticity of host '192.0.2.10 (192.0.2.10)' can't be established.
ED25519 key fingerprint is SHA256:9fT2kL0qX8vN4cR1yB6sW3mZ7aH5dE0uJ2pG8oK1iVc.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? no
Host key verification failed.Saat diakhiri dengan no, file known_hosts tidak dibuat. Karena itu pertanyaan yang sama muncul lagi pada koneksi berikutnya.
2️⃣ Opsi perintah SSH
Opsi ssh ditulis sebelum tujuan koneksi. Saat hanya menjalankan ssh, daftar opsi yang bisa dipakai muncul sebagai petunjuk penggunaan.
sshusage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address]
[-c cipher_spec] [-D [bind_address:]port] [-E log_file]
[-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file]
[-J destination] [-L address] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-P tag] [-p port] [-R address]
[-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
destination [command [argument ...]]
ssh [-Q query_option]Jika memberi opsi yang tidak ada di petunjuk penggunaan, error [unknown option] muncul bersama petunjuk penggunaan yang sama.
-V menampilkan versi klien OpenSSH yang terpasang. Di bawah ini hasil dari server AlmaLinux yang terhubung; di server Debian 12 yang menerima koneksi muncul OpenSSH_9.2p1.
ssh -VOpenSSH_9.9p1, OpenSSL 3.5.1 1 Jul 2025-G tidak terhubung ke server, tetapi menggabungkan opsi yang diberikan dengan file konfigurasi dan menampilkan nilai yang benar-benar akan diterapkan. Keluaran lengkapnya 87 baris, jadi kami memilih baris yang diperlukan saja dengan grep.
ssh -G user@example.com | grep -E "^(user|hostname|port|identityfile|connecttimeout|stricthostkeychecking|serveraliveinterval) "user user
hostname example.com
port 22
stricthostkeychecking ask
serveraliveinterval 0
identityfile ~/.ssh/id_rsa
identityfile ~/.ssh/id_ecdsa
identityfile ~/.ssh/id_ecdsa_sk
identityfile ~/.ssh/id_ed25519
identityfile ~/.ssh/id_ed25519_sk
identityfile ~/.ssh/id_xmss
identityfile ~/.ssh/id_dsa
connecttimeout noneTujuh baris identityfile adalah file kunci bawaan yang dicari ssh secara berurutan jika -i tidak diberikan. connecttimeout none berarti waktu tunggu koneksi tidak diatur secara khusus.
| Opsi | Salin | Penjelasan |
|---|---|---|
| -lAkun | Menentukan nama akun untuk koneksi | |
| -pPort | Menentukan port koneksi (bawaan 22) | |
| -iFile kunci | Menentukan file kunci privat | |
| -v | Menampilkan proses koneksi sebagai baris debug1 | |
| -C | Mengompresi data yang dikirim dan diterima | |
| -X | Penerusan X11 (program GUI jarak jauh) | |
| -T | Tidak mengalokasikan terminal virtual | |
| -t | Memaksa alokasi terminal virtual | |
| -n | Mengalihkan input standar ke /dev/null | |
| -q | Mengurangi peringatan dan pesan informasi | |
| -oopsi=nilai | Menentukan opsi file konfigurasi hanya untuk koneksi ini | |
| -L | Port forwarding lokal | |
| -F | Menentukan file konfigurasi | |
| -G | Menampilkan pengaturan yang akan diterapkan tanpa terhubung | |
| -V | Menampilkan versi klien OpenSSH |
| Opsi | Salin | Penjelasan |
|---|---|---|
| -N | Mempertahankan koneksi saja tanpa perintah jarak jauh | |
| -J | Terhubung melalui server lain |
3️⃣ Opsi ssh -l dan port forwarding -L
-l adalah opsi untuk menentukan nama akun koneksi. ssh -l user 192.0.2.10 terhubung dengan akun yang sama seperti ssh user@192.0.2.10.
ssh -l user 192.0.2.10 whoamiuserSaat diperiksa dengan -G, akun yang diberikan lewat -l masuk ke entri user.
ssh -G -l admin example.com | grep -E "^(user|hostname|port) "user admin
hostname example.com
port 22Kami juga memeriksa dengan -G mana yang berlaku jika -l dan akun@alamat ditulis bersamaan. Di OpenSSH 9.9p1, yang diterapkan adalah admin yang diberikan lewat -l.
ssh -G -l admin user@example.com | grep -E "^(user|hostname) "user admin
hostname example.com-L huruf besar namanya mirip, tetapi merupakan opsi port forwarding lokal yang tidak berhubungan dengan akun. Opsi ini meneruskan koneksi yang masuk ke port di server Anda melalui koneksi SSH dan menghubungkannya ke alamat dan port di sisi server jarak jauh.
8080:localhost:80 berarti menghubungkan port 8080 di server Anda ke port 80 milik localhost dilihat dari server jarak jauh. Saat diperiksa dengan -G, nilai yang sama masuk ke entri localforward.
ssh -G -L 8080:localhost:80 user@example.com | grep -E "^(hostname|localforward) "hostname example.com
localforward 8080 [localhost]:80Jika hanya ingin membiarkan terowongan tetap terbuka, tambahkan juga -N yang mempertahankan koneksi tanpa perintah jarak jauh.
4️⃣ Menentukan port dan file kunci SSH
Jika server SSH menerima koneksi di port selain 22, tentukan port dengan -p. -i menentukan file kunci privat yang tidak memakai nama bawaan.
ssh -G -p 2222 -i ./mykey user@example.com | grep -E "^(user|hostname|port|identityfile) "user user
hostname example.com
port 2222
identityfile ./mykeySetelah -i ditentukan, tujuh baris file kunci bawaan hilang dan hanya file yang ditentukan yang tersisa.
File kunci dibuat dengan ssh-keygen. Jika sudah memakai kunci lain, beri nama file baru dengan -f. Di bawah ini hasil membuat kunci ed25519 dengan nama baru mykey.
ssh-keygen -t ed25519 -f ./mykey -N "" -C "user@example.com"Generating public/private ed25519 key pair.
Your identification has been saved in ./mykey
Your public key has been saved in ./mykey.pub
The key fingerprint is:
SHA256:XLbhLZHSNdMvUqhSIbzRNJi/zKKkNnWmy0mTeBoUfaY user@example.com
The key's randomart image is:
+--[ED25519 256]--+
| ..=+.+o |
| . =oo+.oo |
| . . +=B. . . |
| . =o=o=. . .|
| . E S++... . |
| . .o.+ +. |
| o+== . |
| +*oo |
| ...+. |
+----[SHA256]-----+mykey adalah kunci privat dan mykey.pub adalah kunci publik. Manual OpenSSH menyarankan memasukkan kunci publik ke ~/.ssh/authorized_keys di server yang akan dituju. Langkah ini bisa dilakukan dengan ssh-copy-id, seperti [ssh-copy-id -i ./mykey.pub user@192.0.2.10].
Jika sering terhubung ke server yang sama, tulis alias di ~/.ssh/config lalu cukup ketik ssh diikuti alias. Baris Host adalah alias, dan baris di bawahnya adalah nilai yang diterapkan saat terhubung dengan alias itu.
Host myserver
HostName 192.0.2.10
User user
Port 2222
IdentityFile ~/.ssh/mykeySetelah pengaturan ini ditulis di file ./config dan dibaca dengan -F, alamat, akun, port, dan file kunci semuanya diterapkan hanya dengan satu alias.
ssh -F ./config -G myserver | grep -E "^(user|hostname|port|identityfile) "user user
hostname 192.0.2.10
port 2222
identityfile ~/.ssh/mykeyOpsi yang ditulis di baris perintah lebih diutamakan daripada file konfigurasi. Saat -p 22 ditambahkan pada alias yang sama, port berubah menjadi 22.
ssh -F ./config -G -p 22 myserver | grep -E "^(hostname|port) "hostname 192.0.2.10
port 22hostname tetap 192.0.2.10 dari file konfigurasi, dan hanya port yang berubah menjadi nilai di baris perintah.
5️⃣ Menjalankan perintah jarak jauh dengan SSH
Jika perintah ditulis setelah tujuan koneksi, ssh hanya menjalankan perintah itu tanpa layar login lalu memutus koneksi. Jika ada beberapa perintah atau simbol shell seperti titik koma, apit dengan tanda kutip tunggal.
ssh user@192.0.2.10 'whoami; hostname'user
server2Kode keluar perintah jarak jauh kembali apa adanya sebagai kode keluar ssh. Dalam skrip, nilai ini dipakai untuk menilai apakah perintah jarak jauh berhasil.
ssh user@192.0.2.10 'exit 3'; echo $?3Saat perintah dijalankan seperti ini, terminal virtual tidak dialokasikan. tty yang dijalankan dengan -T menampilkan [not a tty].
ssh -T user@192.0.2.10 ttynot a ttyManual ssh menjelaskan -t sebagai opsi untuk menjalankan program berbasis layar di server jarak jauh. Dengan -t, /dev/pts/0 muncul, dan di akhir juga muncul pesan bahwa koneksi ditutup.
ssh -t user@192.0.2.10 tty/dev/pts/0
Connection to 192.0.2.10 closed.Saat -q ditambahkan, pesan ini tidak muncul.
ssh -t -q user@192.0.2.10 tty/dev/pts/0-n mengalihkan input standar ssh ke /dev/null. Tanpa -n, cat jarak jauh menampilkan hello yang dikirim lewat pipa apa adanya.
echo hello | ssh user@192.0.2.10 cathelloecho hello | ssh -n user@192.0.2.10 catSaat -n ditambahkan pada perintah yang sama, hello tidak sampai ke cat jarak jauh sehingga tidak ada yang ditampilkan.
6️⃣ Error koneksi SSH dan debug dengan ssh -v
Jika tidak bisa terhubung, periksa dulu pesan error untuk melihat di tahap mana koneksi berhenti. Saat alamat server tidak ditemukan, muncul [Could not resolve hostname].
ssh user@nosuchhost.invalidssh: Could not resolve hostname nosuchhost.invalid: Name or service not knownJika alamatnya benar tetapi tidak ada jawaban di port itu, muncul [Connection timed out]. Dengan -o ConnectTimeout=5, koneksi berakhir dengan error ini setelah 5 detik.
ssh -o ConnectTimeout=5 -p 2222 user@192.0.2.10ssh: connect to host 192.0.2.10 port 2222: Connection timed outSaat terhubung dengan -o BatchMode=yes ke server yang tidak ada di known_hosts, ssh berakhir dengan [Host key verification failed.] tanpa menanyakan kunci host. Agar koneksi pertama dalam skrip tidak berhenti di pertanyaan, gunakan StrictHostKeyChecking=accept-new.
ssh -o BatchMode=yes user@192.0.2.10 trueHost key verification failed.Menurut manual ssh_config, accept-new menyimpan tanpa bertanya hanya kunci host dari server yang belum pernah dilihat. Jika datang kunci yang berbeda dari yang sudah tersimpan, koneksi ditolak.
ssh -o StrictHostKeyChecking=accept-new user@192.0.2.10 whoamiWarning: Permanently added '192.0.2.10' (ED25519) to the list of known hosts.
userJika akun belum memiliki kunci terdaftar, muncul [Permission denied (publickey)]. Kegagalan autentikasi berulang dapat membuat server memblokir IP yang terhubung.
-v menampilkan proses koneksi sebagai baris debug1. Keluaran lengkapnya lebih dari 70 baris, jadi di bawah ini hanya baris tahap koneksi dan autentikasi yang dipilih dengan grep.
ssh -v -i ~/.ssh/id_ed25519 user@192.0.2.10 true 2>&1 | grep -E 'Connecting to|Connection established|remote software version|Server host key|is known and matches|can continue|Offering public key|Authenticated to|Exit status'debug1: Connecting to 192.0.2.10 [192.0.2.10] port 22.
debug1: Connection established.
debug1: Remote protocol version 2.0, remote software version OpenSSH_9.2p1 Debian-2+deb12u10
debug1: Server host key: ssh-ed25519 SHA256:9fT2kL0qX8vN4cR1yB6sW3mZ7aH5dE0uJ2pG8oK1iVc
debug1: Host '192.0.2.10' is known and matches the ED25519 host key.
debug1: Authentications that can continue: publickey,password
debug1: Offering public key: /root/.ssh/id_ed25519 ED25519 SHA256:4bN7qT1xW9cK3mR6yH0sD2fL8vZ5aJ1eP7uG3oX4iQs explicit
Authenticated to 192.0.2.10 ([192.0.2.10]:22) using "publickey".
debug1: Exit status 0Baris Connecting to adalah percobaan koneksi, sedangkan baris Server host key dan is known and matches adalah pemeriksaan kunci host. Di baris Offering public key kunci ditawarkan, dan di baris Authenticated to autentikasi kunci selesai. Jika berhenti di autentikasi, periksa dulu apakah file kunci yang diinginkan muncul di baris Offering public key.
Saat -C ditambahkan, nilai compression di baris kex berubah dari none menjadi zlib@openssh.com.
ssh -v -C user@192.0.2.10 true 2>&1 | grep -E 'compression'debug1: kex: server->client cipher: aes256-gcm@openssh.com MAC: <implicit> compression: zlib@openssh.com
debug1: kex: client->server cipher: aes256-gcm@openssh.com MAC: <implicit> compression: zlib@openssh.com
debug1: Enabling compression at level 6.-X adalah opsi yang membawa layar program GUI di server jarak jauh ke komputer Anda. Saat dijalankan di server AlmaLinux tanpa layar, muncul baris debug1 yang menyatakan DISPLAY tidak ada.
ssh -v -X user@192.0.2.10 true 2>&1 | grep DISPLAYdebug1: X11 forwarding requested but DISPLAY not setDISPLAY adalah variabel lingkungan yang menentukan tempat menampilkan layar GUI. Karena itu -X dipakai saat terhubung dari komputer yang memiliki layar desktop.
🔲 Simulator perintah SSH
Di simulator di bawah, Anda bisa terhubung ke server virtual dengan ssh dan mencoba sendiri opsi, perintah jarak jauh, dan ssh -G dengan mengetiknya.
🔢 FAQ & Konten yang Direkomendasikan
SSH
SSH di Linux: definisi dan pengaturan dasar
Artikel yang merangkum latar belakang SSH sebagai pengganti Telnet yang tidak terenkripsi, port bawaan 22, autentikasi kunci, dan cara memasangnya.
Keamanan
Kerentanan OpenSSH CVE-2024-6387: pemblokiran sementara dan penerapan patch
Artikel tentang cara kerentanan OpenSSH regreSSHion memanfaatkan sinyal alarm pada waktu tunggu login, serta urutan kami menerapkan pemblokiran sementara lalu patch.
Cloudways
Cara Terhubung ke Cloudways lewat SFTP & SSH: Pengaturan FileZilla, Pendaftaran SSH Key, dan IP Whitelist
Artikel tentang mendaftarkan kunci SSH di server cloud terkelola, memasukkan IP yang terhubung ke daftar putih, lalu terhubung dengan ssh dan FileZilla.
ℹ️ Pemberitahuan Afiliasi
Konten di situs ini berisi tautan afiliasi. Jika pengunjung membeli produk atau layanan melalui tautan tersebut, situs ini menerima komisi dari penjual. Harga yang dibayar pembeli(turun saat ada diskon promo ↓), tidak naik karena hal ini. Harga, diskon, dan informasi stok yang ditampilkan berlaku pada saat penulisan dan bisa berbeda dengan kondisi sebenarnya, jadi pastikan kembali di situs penjual sebelum membeli. Pemilihan dan penilaian produk dibuat berdasarkan standar kami sendiri, dan ada tidaknya komisi tidak memengaruhi urutan maupun isi penilaian.