SSH (Secure Shell) adalah protokol jaringan yang digunakan untuk mengakses dan mengelola perangkat secara remote dengan aman. Salah satu metode yang paling aman untuk mengautentikasi login SSH adalah dengan menggunakan kunci publik (public key). Dengan menggunakan kunci publik, kita dapat menghindari penggunaan kata sandi yang rentan terhadap serangan brute force atau phising. Artikel ini akan membahas cara mengatur login SSH menggunakan kunci publik secara lengkap dan langkah demi langkah.
1. Apa Itu Kunci Publik dan Kunci Privat?
Sebelum melanjutkan, mari kita pahami dulu apa itu kunci publik dan kunci privat:
- Kunci Publik adalah kunci yang bisa dibagikan ke siapa saja. Kunci ini digunakan untuk mengenkripsi pesan yang hanya bisa didekripsi oleh kunci privat yang sesuai.
- Kunci Privat adalah kunci yang harus dijaga kerahasiaannya oleh pemiliknya. Kunci ini digunakan untuk mendekripsi pesan yang telah dienkripsi menggunakan kunci publik yang sesuai.
Kunci publik dan privat bekerja dalam pasangan. Proses enkripsi menggunakan kunci publik, dan hanya kunci privat yang sesuai yang dapat mendekripsi informasi tersebut.
2. Membuat Pasangan Kunci SSH
Langkah pertama adalah membuat pasangan kunci SSH di mesin lokal yang akan digunakan untuk login ke server. Gunakan perintah berikut di terminal atau command prompt:
ssh-keygen -t rsa -b 4096
Penjelasan perintah di atas:
ssh-keygen
adalah perintah untuk membuat pasangan kunci SSH.-t rsa
menunjukkan jenis algoritma yang digunakan (RSA).-b 4096
menunjukkan panjang kunci yang digunakan (4096 bit, lebih aman dibandingkan dengan nilai default 2048 bit).
Setelah menjalankan perintah ini, sistem akan meminta Anda untuk menentukan lokasi penyimpanan kunci dan memberikan passphrase (kata sandi) untuk kunci privat tersebut. Jika Anda tidak ingin menggunakan passphrase, Anda bisa menekan enter untuk melewati langkah ini, tetapi menggunakan passphrase dapat menambah tingkat keamanan.
Secara default, kunci publik dan privat akan disimpan di folder ~/.ssh/
dengan nama file id_rsa
(kunci privat) dan id_rsa.pub
(kunci publik).
3. Menyalin Kunci Publik ke Server
Langkah berikutnya adalah menyalin kunci publik ke server yang ingin Anda akses. Ada beberapa cara untuk melakukan ini:
Menggunakan ssh-copy-id
Cara paling mudah adalah dengan menggunakan perintah ssh-copy-id
yang tersedia di sebagian besar distribusi Linux dan macOS:
ssh-copy-id user@server_ip
Penjelasan:
- user adalah nama pengguna di server yang ingin diakses.
- server_ip adalah alamat IP atau nama domain dari server.
Perintah ini akan menyalin kunci publik Anda ke file ~/.ssh/authorized_keys
di server, yang memungkinkan login tanpa password.
Menggunakan SCP
Jika perintah ssh-copy-id
tidak tersedia, Anda bisa menyalin kunci publik secara manual dengan menggunakan SCP atau dengan membuka file id_rsa.pub dan menyalinnya secara manual ke file ~/.ssh/authorized_keys
di server.
Misalnya, menggunakan SCP:
scp ~/.ssh/id_rsa.pub user@server_ip:/home/user/.ssh/authorized_keys
Setelah itu, pastikan file authorized_keys memiliki izin akses yang benar:
chmod 600 ~/.ssh/authorized_keys
4. Mengatur Izin yang Benar pada Direktori dan File .ssh
Untuk memastikan SSH dapat membaca kunci dengan benar, penting untuk memeriksa izin akses pada direktori ~/.ssh/ dan file authorized_keys
. Jalankan perintah berikut di server:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Izin ini memastikan bahwa hanya pemilik direktori dan file yang dapat mengaksesnya, yang merupakan persyaratan penting untuk keamanan.
5. Menonaktifkan Autentikasi Menggunakan Kata Sandi
Setelah berhasil menambahkan kunci publik, Anda bisa meningkatkan keamanan server dengan menonaktifkan autentikasi berbasis kata sandi (password). Ini mencegah pengguna untuk login dengan kata sandi meskipun mereka mengetahui kata sandi tersebut.
Buka file konfigurasi SSH di server dengan editor teks:
sudo nano /etc/ssh/sshd_config
Temukan dan ubah atau tambahkan baris berikut:
PasswordAuthentication no
Setelah melakukan perubahan, simpan file dan restart layanan SSH untuk menerapkan perubahan:
sudo systemctl restart ssh
Dengan cara ini, server hanya akan menerima autentikasi menggunakan kunci publik, dan login dengan kata sandi akan diblokir.
6. Menguji Login SSH Menggunakan Kunci Publik
Setelah Anda menyalin kunci publik dan menonaktifkan autentikasi dengan kata sandi, cobalah untuk login ke server menggunakan SSH:
ssh user@server_ip
Jika konfigurasi berhasil, Anda akan langsung login ke server tanpa diminta memasukkan kata sandi.
7. Keamanan Tambahan dengan Passphrase
Untuk menambah lapisan keamanan, Anda bisa menambahkan passphrase pada kunci privat. Passphrase akan melindungi kunci privat Anda jika terjadi pencurian kunci, karena hanya yang mengetahui passphrase yang dapat menggunakannya.
Saat pertama kali membuat pasangan kunci SSH, Anda akan diminta untuk memasukkan passphrase. Jika Anda melewatkannya, Anda bisa menambahkannya nanti menggunakan perintah ssh-keygen:
ssh-keygen -p -f ~/.ssh/id_rsa
8. Kesimpulan
Dengan mengonfigurasi login SSH menggunakan kunci publik, Anda dapat meningkatkan keamanan koneksi SSH Anda secara signifikan. Menggunakan kunci publik lebih aman dibandingkan dengan mengandalkan kata sandi, yang rentan terhadap serangan brute force dan phising. Selain itu, menonaktifkan autentikasi berbasis kata sandi akan mempersulit potensi penyerang untuk masuk ke server Anda.
Namun, Anda tetap perlu menjaga kunci privat Anda dengan baik dan memastikan server Anda terlindungi dari akses yang tidak sah. Menggunakan passphrase untuk kunci privat adalah langkah tambahan yang sangat disarankan untuk memperkuat keamanan.