Login SSH ke Linux Tanpa Password
Cara praktis akses remote server linux tanpa password
Saat mengelola server Linux, SSH (Secure Shell) merupakan salah satu metode utama untuk melakukan remote access ke server secara aman.
Pada konfigurasi standar, pengguna biasanya perlu memasukkan password setiap kali melakukan koneksi SSH. Jika kita mengelola banyak server atau sering mengakses server yang sama, proses ini tentu kurang praktis.
Salah satu solusi yang lebih praktis sekaligus lebih aman adalah menggunakan SSH Key Authentication.
Dengan metode ini, autentikasi dilakukan menggunakan pasangan kunci:
- Private key disimpan di komputer yang digunakan untuk mengakses server.
- Public key disimpan pada server tujuan.
Jika private key yang digunakan cocok dengan public key yang terdaftar pada server, pengguna dapat melakukan login SSH tanpa perlu mengetik password akun setiap kali terhubung.
1. Generate SSH Key di Komputer Lokal
Langkah pertama adalah membuat pasangan SSH key pada komputer yang akan digunakan untuk mengakses server.
Jalankan:
ssh-keygen
Untuk penggunaan modern, key Ed25519 juga bisa digunakan:
ssh-keygen -t ed25519
Saat menjalankan perintah tersebut, akan muncul beberapa pertanyaan mengenai lokasi penyimpanan key dan passphrase.
Contohnya:
Enter file in which to save the key:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Jika ingin menggunakan lokasi default, cukup tekan Enter.
Untuk keamanan yang lebih baik, private key sebaiknya menggunakan passphrase, terutama jika key digunakan untuk mengakses server penting.
2. Cek SSH Key yang Sudah Dibuat
Setelah proses pembuatan key selesai, periksa directory SSH:
ls -la ~/.ssh/
Biasanya akan terdapat dua file utama.
Jika menggunakan RSA:
id_rsa
id_rsa.pub
Jika menggunakan Ed25519:
id_ed25519
id_ed25519.pub
Fungsinya:
id_rsa/id_ed25519merupakan private key.id_rsa.pub/id_ed25519.pubmerupakan public key.
Private key harus disimpan dengan aman dan tidak boleh dibagikan kepada siapa pun.
Sedangkan public key memang dibuat untuk ditempatkan pada server yang ingin kita akses.
3. Copy Public Key ke Server Remote
Sebelum menggunakan SSH key, public key perlu ditambahkan ke server tujuan.
Cara paling mudah adalah menggunakan:
ssh-copy-id username@remote_host
Contoh:
ssh-copy-id root@192.168.1.10
Atau menggunakan hostname:
ssh-copy-id admin@server.example.com
Ganti:
usernamedengan username yang digunakan pada server.remote_hostdengan IP address atau hostname server tujuan.
Pada proses pertama, SSH akan meminta password user pada server.
Setelah autentikasi berhasil, public key akan ditambahkan ke:
~/.ssh/authorized_keys
pada user tersebut di server.
4. Coba Login SSH Tanpa Password
Setelah public key berhasil ditambahkan, coba login kembali:
ssh username@remote_host
Contoh:
ssh root@192.168.1.10
Jika konfigurasi sudah benar, server tidak lagi meminta password akun.
Apabila private key menggunakan passphrase, SSH mungkin tetap meminta passphrase private key tersebut. Passphrase ini berbeda dengan password akun Linux pada server.
Kesimpulan
Menggunakan SSH Key Authentication membuat proses remote login ke server Linux menjadi lebih praktis sekaligus meningkatkan keamanan.
Dibandingkan password authentication, SSH key jauh lebih sulit diserang menggunakan metode seperti brute-force password attack, karena autentikasi bergantung pada pasangan public key dan private key.
Private key tetap harus dijaga dengan baik karena key tersebut merupakan identitas yang digunakan untuk mendapatkan akses ke server.
Untuk server produksi, penggunaan SSH key juga bisa dikombinasikan dengan menonaktifkan login menggunakan password melalui konfigurasi SSH server:
PasswordAuthentication no
pada:
/etc/ssh/sshd_config
Namun, pastikan login menggunakan SSH key sudah berhasil sebelum menonaktifkan password authentication agar tidak kehilangan akses ke server.