Konsep Private key dan Publik key dalam SSH
Jika konfigurasi SSH yang biasa kita lakukan untuk dapat terkoneksi dengan server kita memerlukan user dan password, maka kali ini kita akan mencoba untuk membuat Private Key dan Public Key tujuannya adalah agar Server kita lebih secure (aman) lagi.
Dalam konteks Secure Shell (SSH), private key dan public key adalah dua kunci kriptografi yang digunakan untuk autentikasi dan enkripsi. Private key bersifat rahasia dan hanya boleh diketahui oleh pemiliknya, sementara public key dapat dibagikan secara luas.
Berikut adalah penjelasan lebih detail:
- Private Key:
- Disimpan secara pribadi dan rahasia oleh pengguna.
- Digunakan untuk menandatangani data (digital signature) dan mendekripsi data yang dienkripsi dengan public key yang sesuai.
- Jika seseorang mendapatkan private key, mereka dapat mengakses sistem yang dilindungi oleh kunci tersebut seolah-olah mereka adalah pemilik kunci.
- Public Key:
- Dapat dibagikan secara publik dan ditempatkan di server SSH.
- Digunakan untuk mengenkripsi data dan memverifikasi digital signature yang dibuat oleh private key yang sesuai.
- Dengan kunci publik, orang lain dapat mengenkripsi data yang hanya dapat dibuka oleh pemilik private key.
Fungsi dalam SSH:
- Otentikasi:
- SSH Key-based authentication menggunakan pasangan kunci publik dan privat untuk memverifikasi identitas pengguna.
- Ketika pengguna mencoba terhubung ke server SSH, server akan meminta public key dari pengguna tersebut.
- Pengguna menggunakan private key yang sesuai untuk membuktikan bahwa mereka adalah pemilik kunci publik yang diminta.
- Jika cocok, otentikasi berhasil dan pengguna dapat terhubung ke server.
- Enkripsi:
- SSH menggunakan kunci publik untuk mengenkripsi data yang dikirimkan antara klien dan server.
- Hanya private key yang sesuai yang dapat mendekripsi data yang dienkripsi.
- Ini memastikan bahwa komunikasi melalui SSH aman dan terlindungi dari penyadapan.
Pembuatan Kunci:
- Kunci SSH dibuat menggunakan algoritma kriptografi, seperti RSA atau ECDSA.
- Proses pembuatan kunci biasanya menghasilkan pasangan kunci publik dan privat.
- Kunci publik ditempatkan di server, sedangkan kunci privat disimpan dengan aman oleh pengguna.
Contoh penggunaan:
- Saat Anda ingin terhubung ke server SSH menggunakan terminal (seperti PuTTY), Anda akan menggunakan kunci pribadi Anda.
- Server akan meminta kunci publik Anda dan memverifikasinya dengan kunci pribadi Anda.
- Jika cocok, Anda akan diizinkan untuk masuk ke server.
Pentingnya Keamanan:
- Private key sangat sensitif dan harus dijaga kerahasiaannya.
- Jangan pernah membagikan private key Anda kepada orang lain.
- Gunakan frasa sandi yang kuat untuk melindungi private key Anda jika memungkinkan.
Dengan demikian, private key dan public key dalam SSH adalah komponen penting dalam keamanan dan autentikasi saat mengakses sistem jarak jauh.
Pembuatan private key dan public key
Private key dan publik key dibuat di komputer client, untuk selanjutnya public key akan di upload ke server sementara private key tetap tersimpan di komputer client dan diharpak di jaga dengan baik agar tidak tersebar kemana-mana.
sebelum melakukan copy publik key, pastikan komputer client sudah terinstall ssh client, untuk menginstall ssh client jalankan perintah berikut ini
apt install openssh-client
kemudian perintah untuk membuat sepasang private dan public key adalah sebagai berikut :
ssh-keygen
Setelah perintah tersebut dijalankan, maka akan muncul tampilan seperti gambar berikut
secara default hasil private key dan public key akan di letak kan di folder /root/.ssh/id_rsa, id_rsa adalah nama dari private key yang kita buat. dari gambar di atas kita hanya perlu menekan Enter. kemudian akan tampil gambar seperti berikut ini.
pada gambar di atas, kita diminta untuk mengisikan passphrase, tujuannya untuk mengamankan private key dan public key. passphrase mirip dengan password namun dalam penggunaanya kita bole membedakan antara password ssh dan passphrase, atau boleh juga di samakan. silahkan ketikkan passphrase yang di kehedaki, kemudian tekan ENTER, selanjutnya akan tampil seperti pada gambar berikut ini.
pada tahapan seperti gambat di atas kita hanya perlu mengetikkan ulang passphrase yang telah kita masukkan pada tahap sebelumnya.
Sampai disini kita sudah berhasil membuat private key dan public key. tahap selanjutnya adalah mengirim file publik key ke server. pada tahap pembuatan publik dan private key di atas hasilnya terletak di dalam folder /root/.ssh/id_rsa
jadi kita harus menuju lokasi direktori tersebut. untuk itu ketikkan perintah berikut ini
cd /root/.ssh/
ls
maka akan tampil seperti pada gambar di bawah ini
pada gambar di atas di dalam folder /root/.ssh
terdapat dua file yang bernama id_rsa dan id_rsa.pub. file id_rsa adalah file private key dan file id_rsa.pub adalah file public key. Nah, yang akan kita kirim ke server adalah file dengan nama id_rsa.pub. Untuk mengirim file public key ke server ketikkan perintah berikut ini
ssh-copy-id guru@192.168.200.254
keterangan :
- ssh-copy-id adalah perintah untuk melakukan pengkopian file public key ke server
- guru adalah nama user yang terdaftar di server, tentunya nama user ini harus di sesuaikan
- @192.168.200.254 adalah alamat ip dari server, tentunya alamat ip ini harus disesuaikan
Setelah perintah tersebut di jalankan maka akan muncul tampilan seperti pada gambar berikut ini.