Sejak memasang "dark" theme, saya cenderung menjadi malas menulis. Untuk sementara, dark theme saya disable dulu yaa. Terima kasih (^_^) (bandithijo, 2024/09/15) ●
Pendahuluan
Sudah hampir dua minggu ini saya terpilih sebagai peserta untuk mengikuti kelas yang membahas tentang Cloud Computing. Ini merupakan bidang yang sangat baru pertama kali saya sentuh. Sebelumnya, memang saya sering membaca (meski hanya judul) di beberapa blog GNU/Linux yang membahas tentang teknologi-teknologi yang digunakan dalam cloud computing. Meskipun sama-sama dalam bidang teknologi, namun jujur saja, istilah-istilah yang digunakan sangat asing buat saya pahami.
Keresahan
Di kelas yang saya ikuti, saya menemukan beberapa penerapan perintah-perintah ssh
yang saya rasa perlu untuk mendokumentasikannya. Saya khawatir akan sangat membuang-buang waktu lagi apabila saya harus melakukan research kembali jika suatu saat nanti saya membutuhkannya. Jadi, kenapa tidak saya tulis.
Catatan Kaki
Berikut ini adalah beberapa perintah-perintah SSH yang saya gunakan. Belum dapat saya jelaskan secara detail masing-masing fungsinya dan penjabaran masing-masing parameter yang digunakan.
SSH Tunneling dengan Keybase Login & Spesifik Port
ssh -i .ssh/{private-key} {user}@{server-address} -p {port}
$ ssh -i .ssh/id_rsa bandithijo@dev.bandithijo.com -p 2200
Atau,
$ ssh -i .ssh/id_rsa bandithijo@10.1.41.200.1 -p 2200
SSH Tunneling dengan Keybase Login, Spesifik Port & Dynamic Port Forwarding
Nah, kalo ini saya gunakan untuk Dynamic Port Forwarding, kegunannya untuk mengakses server agar dapat kita akses dari web browser kita.
ssh -D {proxy-port} -i .ssh/{private-key} {user}@{server-address} -p {port}
$ ssh -D 8080 -i .ssh/id_rsa bandithijo@dev.bandithijo.com -p 2200 -q
Atau,
$ ssh -D 8888 -i .ssh/id_rsa bandithijo@10.1.41.200 -p 2200 -q
port 8080 dapat diganti dengan nilai berapapun, asalkan port tersebut tidak digunakan oleh service yang lain.
Setelah itu, untuk mengaksesnya dari web browser, saya menggunakan perintah di bawah.
Firefox
- Pilih menu Preferences > find in Preferences, isikan “Proxy”
- Nanti akan keluar Network Proxy, pilih Settings…
- Pilih Manual proxy configuration > SOCKS Host: localhost Port: 8080, samakan nilai port dengan nilai dynamic port forwarding yang kalian berikan pada saat SSH tunneling port forwarding di atas.
- Pilih bullet SOCKS v5
- Optional untuk mencentang Proxy DNS when using SOCKS v5
- Pastikan Server kalian sudah mengaktifkan service HTTP
Chromium / Google Chrome
Pada browser Chromium atau Google Chrome, cukup menjalankan perintah di bawah ini pada Terminal.
Google Chrome
$ google-chrome-stable --proxy-server="socks5://localhost:8080"
Chromium
$ chromium --proxy-server="socks5://localhost:8080"
SSH Tunneling dengan Username yang Terdaftar pada Server
$ ssh -l banditbiru dev.bandithijo.com
Atau,
$ ssh -l banditbiru 10.1.41.200
Perintah di atas akan membawa kita langsung memasuki user banditbiru di server. Tentu saja perintah ini dapat dilakukan setelah kita memasukkan public key kita ke dalam file /home/banditbiru/.ssh/authorized_keys
di server pada user banditbiru.
Generate Private & Public Key SSH
Saya menggunakan beberapa bentuk format perintah ssh-keygen
untuk mengenerate key. Berikut ini adalah beberapa bentuk format yang saya gunakan dalam pelatihan.
Generate Key untuk User Biasa
Yang sederhana,
$ ssh-keygen
Atau agak kompleks,
$ ssh-keygen -t rsa -b 4096
Yang lebih kompleks,
$ ssh-keygen -t rsa -b 4096 -C "bandithijo@rumah"
Hasil dari perintah di atas adalah dua buah file dengan nama yang sama, namun yang tidak memiliki ekstensi disebut sebagai Private Key dan yang memiliki ekstensi .pub disebut sebagai Public Key.
$ ls -l $HOME/.ssh/
/home/bandithijo/.ssh/
├── authorized_keys
├── id_rsa
├── id_rsa.pub
└── known_hosts
Sebagai catatan, apabila kita melakukan perintah ssh-keygen
pada user biasa, maka otomatis file private dan public key akan diletakkan pada direktori .ssh/
milik user biasa tersebut. Seperti contoh di atas, terletak pada direktori .ssh
milik user bandithijo.
Generate Key untuk Root dari User Biasa
Kita dapat mengenerate key untuk user root melalui user biasa, dengan cara menambahkan sudo
pada awal perintah ssh-keygen
.
$ sudo ssh-keygen
Apabila seperti di atas, maka file private dan public key akan terdapat pada direktori .ssh/
milik root, yaitu /root/.ssh/
.
$ sudo ls -l /root/.ssh/
/root/.ssh/
├── authorized_keys
├── id_rsa
├── id_rsa.pub
└── known_hosts
Tentu saja, apabila private dan public key yang kita generate berada pada direktori /root/
, maka untuk mengakses SSH Gateway kita juga harus mengawalinya dengan menambahkan perintah sudo
di awal baris perintah.
$ sudo ssh -l bandithijo dev.bandithijo.com
Atau,
$ sudo ssh -l bandithijo 10.1.41.200
Apakah private dan public key dapat kita rename?
Tentu saja kita dapat mengganti nama dari file private dan public key tersebut, namun sangat direkomendasikan untuk memberikan nama yang sama diantara keduanya. Agar tetap berpasangan.. So sweet kan gaes ^_^, mereka aja berpasangan, kamu kapan ?
Menampilkan Public Key
cat $HOME/.ssh/{nama_public_key}.pub
$ cat $HOME/.ssh/id_rsa.pub
Menyimpan public key di server target
ssh-copy-id -i ~/.ssh/id_rsa.pub <username@ipaddress>
$ ssh-copy-id -i ~/.ssh/id_rsa.pub bandithijo@192.168.1.7
Pesan Penulis
Oke, saya rasa untuk saat ini, cukup seperti ini saja. Saya tidak berhenti menulis, mungkin lain kali kamu datang lagi, tulisan di halaman ini sudah bertambah dengan perintah-perintah SSH yang lain.
Terima kasih. ^_^
Referensi
- wiki.archlinux.org/index.php/Secure_Shell
Diakses tanggal: 18/07/24
Lisensi
Atribusi-NonKomersial-BerbagiSerupa 4.0 Internasional (CC BY-NC-SA 4.0)
Penulis
My journey kicks off from reading textbooks as a former Medical Student to digging bugs as a Software Engineer – a delightful rollercoaster of career twists. Embracing failure with the grace of a Cat avoiding water, I've seamlessly transitioned from Stethoscope to Keyboard. Armed with ability for learning and adapting faster than a Heart Beat, I'm on a mission to turn Code into a Product.
- Rizqi Nur Assyaufi