Secure Shell (SSH) adalah protokol jaringan kriptografi yang digunakan untuk koneksi aman antara klien dan server dan mendukung berbagai mekanisme otentikasi.
Mekanisme yang paling populer adalah otentikasi berbasis kata sandi dan otentikasi berbasis public key. Menggunakan kunci SSH lebih aman dan nyaman daripada otentikasi kata sandi tradisional.
Dalam tutorial ini, kita akan membahas cara membuat kunci SSH pada CentOS 7. Cara mengatur otentikasi berbasis kunci SSH dan menyambung ke server Linux jarak jauh Anda tanpa memasukkan kata sandi.
Membuat SSH keys di CentOS
Sebelum membuat SSH key pair baru, periksa kunci SSH yang ada pada mesin klien CentOS. Anda dapat melakukannya dengan menjalankan perintah ls:
ls -l ~/.ssh/id_*.pub
Jika perintah di atas mencetak output seperti No such file or directory
atau no matches found,
berarti Anda tidak memiliki SSH keys di mesin klien dan Anda dapat melanjutkan dengan langkah berikutnya dan generate SSH key pair.
Jika ada kunci yang ada, Anda bisa menggunakannya dan melewati langkah berikutnya atau membuat cadangan kunci lama dan menghasilkan yang baru.
Hasilkan pasangan kunci SSH 4096 bit baru dengan alamat email Anda sebagai komentar dengan mengetik:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Outputnya akan terlihat seperti ini:
Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):
Tekan Enter
untuk menerima lokasi file default dan nama file.
Selanjutnya, Anda akan diminta untuk mengetikkan passphrase yang aman.
Enter passphrase (empty for no passphrase):
Jika Anda tidak ingin menggunakan frasa sandi cukup tekan Enter
Seluruh interaksi terlihat seperti ini:
Untuk memverifikasi SSH key pair telah dibuat, ketik:
ls ~/.ssh/id_*
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub
Salin public key ke Server CentOS
Sekarang setelah Anda membuat pasangan kunci SSH Anda, langkah selanjutnya adalah menyalin kunci publik ke server yang ingin Anda kelola.
Cara termudah dan yang disarankan untuk menyalin kunci publik Anda ke server adalah dengan menggunakan utilitas yang disebut ssh-copy-id. Pada jenis terminal mesin lokal Anda:
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 ~/.ssh/id_rsa.pub
akan ditambahkan ke file user remote ~/.ssh/Authorized_key
dan koneksi akan ditutup.
Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'username@server_ip_address'" and check to make sure that only the key(s) you wanted were added.
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_user@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Login ke server menggunakan SSH Keys
Setelah menyelesaikan langkah-langkah di atas, Anda seharusnya sudah bisa masuk ke remote server tanpa diminta kata sandi.
Untuk mengujinya coba masuk ke server Anda melalui SSH:
ssh remote_username@server_ip_address
Jika belum menetapkan frasa sandi untuk private key, Anda akan segera masuk. Jika tidak, Anda akan diminta memasukkan kata sandi.
Menonaktifkan Otentikasi Kata Sandi SSH
Untuk menambahkan lapisan keamanan tambahan ke server, Anda dapat menonaktifkan otentikasi kata sandi untuk SSH.
Sebelum menonaktifkan otentikasi kata sandi SSH, pastikan Anda dapat masuk ke server Anda tanpa kata sandi dan pengguna yang Anda masuki telah memiliki hak sudo.
Log into ke remote server:
ssh sudo_user@server_ip_address
Buka file konfigurasi SSH di /etc/ssh/sshd_config
dengan text editor :
sudo nano /etc/ssh/sshd_config
Cari directive berikut dan modifikasi seperti berikut:
PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
Setelah selesai simpan file dan mulai ulang layanan SSH dengan mengetik:
sudo systemctl restart ssh
Pada titik ini, otentikasi berbasis kata sandi dinonaktifkan.
Kesimpulan
Dalam tutorial ini, Anda telah belajar cara generate SSH key pair baru dan mengatur otentikasi berbasis SSH key. Anda dapat menambahkan kunci yang sama ke beberapa remote server. Kami juga telah menunjukkan cara menonaktifkan otentikasi kata sandi SSH dan menambahkan lapisan keamanan tambahan ke server.
Secara default, SSH listens pada port 22. Mengubah port SSH default akan mengurangi risiko serangan otomatis.
Jika Anda secara teratur terhubung ke beberapa sistem, Anda dapat menyederhanakan alur kerja Anda dengan mendefinisikan semua koneksi Anda dalam file konfigurasi SSH.