Taufiksi – Oy, balik lagi kita, mari kita bahas cara setting ssh key github di ubuntu. Ini akan berguna ketika kita ingin belajar deploy aplikasi.
Contohnya ketika kita ingin deploy next js di vps, pasti akan setting juga ssh juga, itu kalau aplikasi yang kita deploy menggunakan git ya.
Tapi kayaknya kalau sudah sampai pada artikel ini harusnya sudah tidak asing dengan github sih. Kenapa akhir akhir ini sering ngebahas tentang deploy deploy bang ? Hahaha, karena ada satu alasan yang sangat crusial sih.
Oke back to the topiks. Gimana sih caranya kita setting ssh key github di ubuntu ? nah tapi sebelum itu mungkin kita bahas sedikit tentang beberapa hal yaitu apa itu ubuntu, apa itu github, apa itu ssh.
Kalau ngga sabar tentang cara setting ssh key github bisa langsung saja ke bawah, karena mau ngoceh bentar ini.
Apa Itu SSH ?
SSH yang merupakan singkatan dari Secure Shell. SSH adalah sebuah protokol administrasi remote yang memperbolehkan pengguna untuk mengakses dan mengontrol server mereka dalam jaringan yang aman.
Mulai dari membuat program, membuat folder, menghapus file, membuat file, transfer file hingga menjalankan atau menghentikan sebuah services.
Singkatnya, SSH memungkinkan user untuk mengelola servernya dengan leluasa meskipun dari jarak jauh. Setiap website yang menggunakan SSH mempunyai garansi keamanan yang terverifikasi, sehingga membuat user merasa aman ketika menjelajahi website yang menggunakan ssh.
Fungsi SSH bagi user dan website itu sendiri sangat krusial dan menjadikan fitur ini wajib digunakan di setiap website.
SSH sebenarnya dirancang sebagai pengganti telnet dan protokol remote shell lainnya yang tidak aman seperti RSH Barkeley dan Protokol Rexec yang mengirim informasi, terutama kata sandi dalam bentuk text yang menyebabkan rentan terhadap interperensi dan menggunakan penganalisa paket.
SSH biasanya digunakan oleh admin sistem untuk mengelola server dari jarak jauh dan perangkat jaringan untuk menyediakan otentifikasi, enkripsi dan integritas data yang kuat.
Cara kerjanya simplenya adalah klien SSH dipasang pada client SSH dipasang pada mesin lokal sementara server SSH server dipasang pada mesin yang jauh.
Lalu nanti ketika user membuat sebuah koneksi dari klien SSH ke server SSH maka akan tercipta public key ataupun private key.
Kemudian sistem akan mengautentikasi semua kunci dan jika terbukti benar aman maka komunikasi akan dilanjutkan dan di enkripsi untuk menghindari penyadapan.
Ketika kita menggunakan SSH, maka user bisa mentransfer file antar komputer dengan aman, menjalankan perintah dari jarak jauh atau bahkan menciptakan sebuah jalan yang aman untuk aplikasi lain seperti email atau penjelajahan web.
Setiap server yang dibuat oleh VPS yang menggunakan linux ubuntu dan mempunyai IP Public biasanya sudah include fitur SSH secara otomatis.
Fungsi SSH
Sebelum kita masuk ke cara mengatur ssh key github ubuntu mungkin lebih baik kita menelisik tentang fungsi dari SSH.
Jadi ada beberapa fungsi SSH yang perlu di ketahui, yaitu sebagai berikut ini :
- Sebagai kombinasi SFTP (Secure File Transfer Protocol), yaitu alternatif yang aman untuk FTP transfer file.
- RSYNC untuk menyalin dan mentransfer file secara efisien dan aman (hampir sama dengan FTP)
- Browsing web melalui koneksi proxy yang dienkripsi dengan Client SSH yang mendukung protokol SOCKS
- Melakukan remote monitoring dan pengelolaan server melalui satu atau lebih dari mekanisme
Mungkin itu sih untuk beberapa fungsi SSH yang perlu diketahui, kalau ada yang tau lebih banyak tentang fungsi SSH bisa komen aja.
Enkripsi Yang Digunakan SSH
Sistem keamanan dengan menggunakan SSH seperti yang sudah dibilang kita akan mendapatkan jaminan bahwa itu akan kuat setidaknya.
Nah terus emang apa saja teknik enkripsi yang digunakan pada SSH kok bisa menklaim akan mendapatkan jaminan keamanan ?
Nah berikut ini adalah beberapa teknik enkripsi yang digunakan pada SSH, yaah sebelum lanjut ke setting ssh key ke github di linux ubuntu sih.
1. Enkripsi Simetris
Teknologi ini akan mencari kesamaan antara key yang diterima dengan key yang ada. Jadi ketika client mengirimkan connection maka client akan menerima public key. Lalu server akan merespon dengan salinan key-nya sendiri.
Selanjutnya key akan dibandingkan dan jika keduanya simetris maka communication akan dilanjutkan untuk bertukar data dengan aman.
2. Enkripsi Asimetris
Teknik ini berbeda dengan enkripsi simetris, teknik ini bekerja dengan cara mendeskripsi pesan dan bukan mencari kecocokan seperti yang dilakukan enkripsi simetris.
Ketika client membuat key, dua buah key yang berbeda akan tercipta dimana hanya key dari client yang bisa mengenkripsi message dari key server.
Asimetris ini bekerja seperti potongan jigsaw, potongan key yang diterima client hanya bisa membuka potongan key yang berada pada server.
Jadi ketika key dari server katakanlah mempunyai sebuah data maka hal ini akan membuat key dari client tidak bisa lagi membuka pesan dari server.
3. Hashing
Teknologi terakhir dari cara kerja SSH adalah hashing. Simplenya hashing merupakan proses merubah data, apapun data tersebut dan mengubahnya menjadi sebuah string.
Kalau kita programmer backend pasti sudah tidak asing dengan kata hashing. Hashing sendiri adalah untaian angka ataupun huruf yang panjang dan unik. Tapi nanti juga bisa diubah kembali menjadi data asli dengan algoritmanya sendiri.
Dengan begitu, walaupun message atau transmisi kita dicuri ketika sedang berkomunikasi, pencuri kemungkinan besar tidak bisa merubah kembali hashing tersebut menjadi data kita karena pencuri tidak mengetahui algoritma yang digunakan untuk mengenkripsi message tersebut.
Cara Setting SSH Key Github di Ubuntu
Mungkin untuk basa basinya kita sudahi terlebih dahulu karena nanti artikelnya kepanjangan. Jadi mari kita coba langsung ke topik utama kita yaitu setting ssh key github di ubuntu.
Saat kita menggunakan ssh key di ubuntu, maka kemungkinan besar kita akan berkomunikasinya melalui terminal terus menerus yang terhubung ke vps kita.
Ohh iya, di artikel ini kita hanya berfokus pada setting ssh key github pada instalasi ubuntu saja. SSH key menyediakan cara aman untuk masuk ke server kita.
1. Membuat Pasangan SSH Key
Langkah pertama yang harus dilakukan adalah membuat pasangan SSH key pada vps ubuntu kita yaitu dengan cara memasukan perintah seperti ini :
$ ssh-keygen
Secara default, versi terbaru ssh-keygen akan membuat pasangan ssh key RSA 3072-bit, yang cukup aman untuk sebagian besar kasus penggunaan. (Kita juga bisa meneruskan flag -b 4096
untuk membuat kunci 4096-bit yang lebih besar).
Setelah memasukkan perintah, Kita akan melihat output berikut:
Output
Generating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa):
Kemudian tekan enter untuk menyimpan pasangan kunci ke subdirektori .ssh/ di direktori home Kita, atau tentukan jalur alternatif.
Jika sebelumnya Kita sudah membuat pasangan SSH Key, Kita mungkin melihat perintah berikut:
Output
/home/your_home/.ssh/id_rsa already exists.
Overwrite (y/n)?
Jika kita memilih untuk menimpa key pada disk, kita tidak akan bisa lagi mengauthentikasi menggunakan key sebelumnya. Jadi hati hati ketika kita akan memilih ya, karena ini adalah proses destruktif yang tidak bisa dibatalkan.
Lalu kita akan melihat perintah sebagai berikut :
Output
Enter passphrase (empty for no passphrase):
Disini kita secara opsional bisa memasukan frasa sandi yang aman dan sangat disarankan. Frasa sandi ini menambahkan lapisan keamanan tambahan untuk mencegah user yang tidak sah masuk.
Setelah menginputkan frasa sandi ini maka kita akan melihat output sebagai berikut ini :
Output
Your identification has been saved in /your_home/.ssh/id_rsa
Your public key has been saved in /your_home/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:/hk7MJ5n5aiqdfTVUZr+2Qt+qCiS7BIm5Iv0dxrc3ks user@host
The key's randomart image is:
+---[RSA 3072]----+
| .|
| + |
| + |
| . o . |
|o S . o |
| + o. .oo. .. .o|
|o = oooooEo+ ...o|
|.. o *o+=.*+o....|
| =+=ooB=o.... |
+----[SHA256]-----+
Selamat, karena kita sekarang mempunyai public key dan private key yang bisa kita gunakan untuk auth. Langkah selanjutnya adalah menempatkan public key di server kita sehingga kita bisa menggunakan otentifikasi berbasis SSH untuk login.
2. Menyalin Public Key SSH ke Server Ubuntu Kita
Kita punya cara cepat untuk menyalin public key kita ke host ubuntu yaitu dengan cara menggunakan utilitas bernama ssh-copy-id.
Tapi kita tidak akan menggunakan cara tersebut, kita akan menggunakan cara manual saja. Jujur ini merupakan cara yang sangat saya sukai, dan saya sering menggunakan cara ini. Kenapa ? ya simple aja sih saya jadi tau dimana seluk bekuk si SSH key ini ditempatkan.
Selain itu, jika kita tidak mempunyai akses ke ssh berbasis kata sandi ke server maka kita juga harus menyelesaikan proses diatas secara manual.
Nanti server akan menambahkan konten file id_rsa.pub kita secara manual ke file ~/.ssh/authorized_keys di server kita.
Untuk menampilkan konten key id_rsa.pub kita maka harus mengetikan seperti ini:
$ cat ~/.ssh/id_rsa.pub
Maka kita akan melihat pesan ini :
Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test
Akses host jarak jauh kita menggunakan metode apa pun yang tersedia. Setelah kita memiliki akses ke akun di server jarak jauh, kita harus memastikan direktori ~/.ssh ada.
Jika kita menggunakan cara manual untuk menyalin ssh seharusnya sampai disini kita sudah bisa menggunakannya di github.
3. Letakan SSH Key Ke Github
Nah ini adalah part yang ditunggu tunggu, yaitu setting ssh key di github pada server ubuntu. Pastinya sudah tidak asing dengan github kan ?
Github biasa digunakan oleh programmer untuk menaruh kode program yang mereka buat. Yaa banyak sekali manfaat ketika kita menggunakan github sih.
Oke mari kita lanjutkan pembahasan utama kita yaitu setting ssh key di github. Petama tama kita harus login ke github terlebih dahulu.
Setelah itu masuk ke menu setting, biasanya sih terletak pada foto profile kalau di klik maka muncul banyak menu salah satunya setting.
Setelah itu masuk ke menu SSH and GPG Keys, mungkin bentukannya seperti ini :

Atau bisa juga menggunakan link ini agar langsung ke halamannya. Setelah itu kita bisa klik new ssh key.

Nah, tadi kan kita sudah membuat ssh key di ubuntu kita, maka kita salin ssh tersebut kedalam github kita disini. Output yang tadi ketika kita masukan perintah berikut :
$ cat ~/.ssh/id_rsa.pub
Masukan kedalam sini :

Kalau udah, maka selamat kamu sudah berhasil mengatur ssh key di github menggunakan ubuntu.
Penutup
Hoaaaammmm, panjang dan lebar. Mungkin itu aja lah untuk artikel kali ini, sampai jumpa di artikel berikutnya. Semoga aja si. Babai