Secure Shell (SSH) adalah protokol jaringan kriptografi yang digunakan untuk koneksi aman antara klien dan server dan mendukung berbagai mekanisme otentikasi. Dua mekanisme yang paling populer adalah otentikasi berbasis kata sandi dan otentikasi berbasis public key.

Dalam tutorial ini, kami akan menunjukkan kepada Anda cara mengatur otentikasi berbasis kunci SSH serta cara terhubung ke server Linux Anda tanpa memasukkan kata sandi (Passwordless).

Untuk mengatur login SSH tanpa kata sandi di Linux, yang perlu Anda lakukan adalah membuat kunci otentikasi publik dan menambahkannya ke file host  ~/.ssh/authorized_keys.

Langkah-langkah berikut akan menjelaskan proses untuk mengonfigurasi login SSH tanpa kata sandi:

  1. Periksa SSH key pair yang ada. Sebelum membuat key pair SSH yang baru, periksa dulu apakah Anda sudah memiliki key SSH pada mesin klien, karena kita tidak ingin menimpa kunci yang ada. Jalankan perintah ls berikut untuk melihat apakah kunci SSH yang ada hadir:
    ls -al ~/.ssh/id_*.pub

    Jika ada kunci yang ada, kita bisa menggunakannya dan melewati langkah berikutnya, atau membuat cadangan kunci lama dan menghasilkan kunci yang baru.

    Jika melihat output No such file or directory atau no matches found , berarti Anda tidak memiliki kunci SSH dan dapat melanjutkan dengan langkah berikutnya dan menghasilkan yang baru.

  2.  Hasilkan SSH key pair yang baru. Perintah berikut akan menghasilkan SSH key pair 4096 bit baru dengan alamat email Anda sebagai comment:
    ssh-keygen -t rsa -b 4096 -C "[email protected]"

    Tekan Enter untuk menerima lokasi file default dan nama file:

    Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

    Selanjutnya, ssh-keygen akan meminta Anda untuk mengetikkan frasa sandi yang aman. Jika Anda memilih untuk menggunakan kata sandi, Anda akan mendapatkan lapisan keamanan tambahan. Dalam kebanyakan kasus, pengembang dan administrator sistem menggunakan SSH tanpa frasa sandi karena mereka menginginkan untuk proses yang sepenuhnya otomatis. Jika Anda tidak ingin menggunakan frasa sandi cukup tekan Enter

    Enter passphrase (empty for no passphrase):

    Seluruh interaksi terlihat seperti ini:

    Buat SSH key pair yang baru
    Untuk memastikan bahwa kunci SSH dibuat,  gunakan perintah berikut :

    ls ~/.ssh/id_*
    /home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub
  3. Salin public key, Sekarang Anda telah membuat key pair SSH, agar dapat masuk ke server tanpa kata sandi, Anda perlu menyalin public key ke server yang ingin di kelola. Cara termudah untuk menyalin public key ke server dengan menggunakan perintah yang disebut ssh-copy-id. Pada terminal mesin lokal, ketik perintah :
    ssh-copy-id remote_username@server_ip_address

    Anda akan diminta memasukkan kata sandi remote_username:

    remote_username@server_ip_address's password:

    Setelah user diautentikasi, kunci publik akan ditambahkan ke file authorized_keys user jarak jauh dan koneksi akan ditutup.

    Jika karena alasan tertentu utilitas ssh-copy-id tidak tersedia di komputer lokal, Anda dapat menggunakan perintah berikut untuk menyalin kunci publik:

    cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

    Copy

  4. Login ke server menggunakan SSH keys. Setelah menyelesaikan langkah-langkah di atas, Anda seharusnya sudah dapat masuk ke server jarak jauh tanpa dimintai kata sandi. Untuk mengujinya, cobalah mencoba masuk ke server melalui SSH:
    ssh remote_username@server_ip_address

    Jika semuanya berjalan dengan baik, Anda akan segera masuk.

Nonaktifkan Otentikasi Kata Sandi SSH

Untuk menambahkan lapisan keamanan tambahan ke server, Anda dapat menonaktifkan otentikasi kata sandi untuk SSH.

Sebelum menonaktifkan otentikasi SSH dengan kata sandi, pastikan Anda dapat masuk ke server tanpa password dan memiliki hak sudo.

Tutorial berikut menjelaskan cara mengkonfigurasi akses sudo:

  1. Masuk ke remote server dengan kunci SSH, baik sebagai pengguna dengan hak akses sudo atau root:
    ssh sudo_user@server_ip_address
  2. Buka file konfigurasi SSH /etc/ssh/sshd_config, cari directive berikut dan modifikasi sebagai berikut:
    PasswordAuthentication no
    ChallengeResponseAuthentication no
    UsePAM no

    Setelah selesai simpan file dan restart layanan SSH.

    Di server Ubuntu atau Debian, jalankan perintah berikut:

    sudo systemctl restart ssh

    Pada server CentOS atau Fedora, jalankan perintah berikut::

    sudo systemctl restart sshd

Kesimpulan

Dalam tutorial ini Anda telah belajar cara mengatur otentikasi berbasis SSH key, memungkinkan untuk masuk ke remote server tanpa memberikan kata sandi. Anda dapat menambahkan kunci yang sama ke beberapa remote server.

Kami juga telah menunjukkan kepada Anda cara menonaktifkan otentikasi kata sandi SSH dan menambahkan lapisan keamanan tambahan ke server Anda.