Secure Shell (SSH) adalah protokol untuk login jarak jauh yang aman dan layanan jaringan aman lainnya melalui jaringan yang tidak aman. Dengan SSH kita bisa login dari komputer satu ke komputer lain secara remote dalam bentuk command line, mengeksekusi perintah atau program secara remote, hingga transfer files dari satu komputer ke komputer lain nya menggunakan perintah scp atau rsync melalui local network maupun jaringan internet.

Artikel berikut ini akan menjelaskan bagaimana setup SSH tanpa password antar server linux baik yang berbasis RedHat seperti RHEL (Red Hat Enterprise Linux), CentOS, dan Fedora, atau berbasis Debian seperti Debian, Ubuntu, dan Linux Mint. Dengan SSH tanpa password, kita bisa melakukan otomasi tugas-tugas antar server seperti CI/CD, auto backup, sinkronisasi file antar server, eksekusi perintah secara remote serta tugas-tugas lain nya dengan lebih mudah dan aman.

Sebagai contoh, kita memiliki 2 server sebagai berikut :

Server A (Host)
OS : CentOS 7
IP : 192.168.0.10
SSH Port : 22 (default)
User : user-1

Server B (Client)
OS : Ubuntu 20.04
IP : 192.168.0.11
SSH Port : 22 (default)
User : user-2


Pada contoh berikut ini kita akan melakukan setup agar Server B (191.168.0.11) dengan user user-2 bisa ssh ke Server A (192.168.0.10) dengan user user-1 tanpa perlu memasukan kata sandi (password) kembali.

Langkah 1 : Buat RSA Public / Private Key Pada Client (Server B)

Buka terminal, masuk ke Server B sebagai user-2. Jika sudah di Server B namun belum sebagai user-2, maka bisa mengetik su - user-2 untuk switch user menjadi user-2, ketik whoami untuk memastikan bahwa kita sudah masuk sebagai user-2. Jika sudah dipastikan kita telah masuk ke Server B sebagai user-2, ketik ssh-keygen -t rsa untuk membuat RSA public / private key maka akan muncul tampilan sebagai berikut, pada isian file dan passphrase langsung tekan ↵ Enter  saja.

$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user-2/.ssh/id_rsa): [langsung tekan tombol Enter saja]
Created directory '/home/user-2/.ssh'.
Enter passphrase (empty for no passphrase): [langsung tekan tombol Enter saja]
Enter same passphrase again: [langsung tekan tombol Enter saja]
Your identification has been saved in /home/user-2/.ssh/id_rsa.
Your public key has been saved in /home/user-2/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:tKfIAA3buMYzEf8p6p8mH19vkw8mxVhzHHSeiTdUXII user-2@ubuntu
The key's randomart image is:
+---[RSA 3072]----+
|  o        .o.+o+|
|   O       .E* +.|
|  = +   . o + *  |
| . + . o = o . . |
|  * o o S +      |
| . + + . +       |
|  . . o + o.     |
| .. .+ . ++.     |
|  .=+ .  ..o.    |
+----[SHA256]-----+


Langkah 2 : Upload RSA Public Key Client (Server B) ke Host (Server A)

Ketik ssh-copy-id [email protected] -p 22 untuk meng-upload RSA public key Server B ke Server A. Masukan kata sandi (password) user-1 di Server A saat diminta.

$ ssh-copy-id [email protected] -p 22

* jika port ssh nya 22, tidak pakai tambahan -p 22 juga tidak apa-apa.

Langkah 3 : Tes SSH Tanpa Password Dari Client (Server B) ke Host (Server A)

Langkah terakhir kita bisa langsung mengetes SSH dari Server B ke Server A, ketika mengetik ssh [email protected] -p 22 maka kita sudah bisa langsung masuk ke Server A sebagai user-1 tanpa perlu memasukan kata sandi (password) kembali.

$ ssh [email protected] -p 22

* jika port ssh nya 22, tidak pakai tambahan -p 22 juga tidak apa-apa.

Demikian artikel kali ini, semoga bermanfaat.