Cara Menggunakan Kata Sandi Terenkripsi di Skrip Shell di Linux

Skrip bash adalah bagian penting dari pekerjaan administrator sistem. Mereka memungkinkan Anda untuk mengotomatisasi tugas-tugas biasa dan penting.


Salah satu hal terbaik dengan skrip adalah skrip dapat berjalan secara independen tanpa campur tangan manusia, tetapi terkadang sulit untuk mengotomatisasi tugas yang memerlukan kata sandi pengguna. Mari kita lihat bagaimana Anda dapat dengan aman mengotomatisasi skrip yang memerlukan kata sandi tanpa mengorbankan keamanan.


Membuat Script Sederhana

Mari kita asumsikan bahwa Anda ingin membuat skrip sederhana yang mencadangkan folder beranda Linux Anda ke lokasi yang jauh sehingga Anda dapat dengan mudah memulihkan data Anda jika terjadi kehilangan data.

Mulailah dengan membuat file skrip Bash di folder rumah Anda, menggunakan perintah sentuh atau metode lain apa pun, dan beri nama backup_home.sh. Jangan ragu untuk menggunakan nama dan direktori apa pun yang Anda sukai.

Script menggunakan rsync perintah, alat penyalinan file yang kuat, untuk mencadangkan semua file di direktori home lokal Anda ke server jauh.

Salin konten skrip berikut dan tempel ke file Bash Anda. Ingatlah untuk mengganti pengguna john dengan nama pengguna rumah lokal Anda yang benar. Juga berikan nama pengguna dan alamat IP yang benar untuk server jarak jauh.

#!/bin/bash
rsync -avl --mkpath /home/john user_name@remote_server/home/Backup

Jika Anda tidak memiliki server jarak jauh untuk diuji, Anda cukup menginstal VirtualBox dan menyiapkan VM di mesin lokal Anda. Gunakan tamu VM sebagai server jarak jauh Anda.

See also  Apakah Anda Benar-Benar Perlu Mematikan PC Linux Anda?

Simpan file. Untuk menjalankan skrip, Anda harus memberinya izin eksekusi menggunakan perintah sudo chmod 755. Semua pengguna dapat menjalankan skrip tetapi hanya pengguna sudo yang dapat memodifikasi file.

Terakhir, jalankan skrip Bash dari terminal menggunakan perintah:

./backup_home.sh

Setiap kali Anda menjalankan skrip ini, Anda akan diminta untuk memasukkan kata sandi server jauh. Ini tidak ideal jika Anda ingin menjalankan skrip tanpa campur tangan manusia, seperti saat menggunakan Cron.

Mengotomatiskan Login Kata Sandi

Install sshpasspenyedia kata sandi non-interaktif, di PC lokal Anda atau PC tempat Anda menjalankan skrip.

Pada distro berbasis Debian

Jika Anda menggunakan distro berbasis Debian seperti Ubuntu, Pop!_OS, dan Lubuntu:

sudo apt update && sudo apt install sshpass

Di RHEL dan Fedora

dnf install sshpass

Setelah install sshpass ubah scriptnya sehingga terlihat seperti berikut.

#!/bin/bash
sshpass -p "yourpassword" rsync -avl --mkpath /home/john [email protected]_server/home/Backup

Di sini Anda memberikan kata sandi dalam teks biasa. Jelas, ini bukan cara yang ideal, karena tidak aman dan bukan praktik yang baik. Jika skrip jatuh ke tangan yang salah, Anda berada dalam masalah besar.

Untuk membuatnya lebih aman, kami akan menggunakan GnuPG, alat enkripsi sumber terbuka dan aman.

Mengenkripsi Kata Sandi Anda

GnuPG diinstal secara default di sebagian besar sistem Linux, tetapi jika tidak diinstal pada sistem Anda, berikut cara menginstal GnuPG.

Buat file tersembunyi bernama rahasia menggunakan perintah sentuh .rahasia. Karena kami telah membuat file disembunyikan secara default sebagai tindakan keamanan ekstra, inilah cara Anda dapat melihat file tersembunyi di Linux.

See also  Nobara Linux: Distro Gaming Berdarah-Edge untuk Pemula Linux

Dalam file rahasia, masukkan kata sandi PC jarak jauh Anda dan simpan.

Selanjutnya, enkripsi file menggunakan gpg memerintah.

sudo gpg .secrets

Anda akan diminta memasukkan kata sandi yang aman dan kuat untuk membuka file terenkripsi.

GnuPG akan membuat file baru dengan ekstensi .gpg ditambahkan ke nama file lama. Nama file baru Anda sekarang seharusnya rahasia.gpgdengan asumsi Anda menggunakan rahasia nama file.

Jika Anda melihat konten secret.gpg menggunakan kucing perintah, Anda akan disajikan dengan beberapa teks omong kosong untuk menunjukkan bahwa kata sandi Anda dienkripsi.

Untuk melihat konten file dalam teks biasa, Anda harus mendekripsinya menggunakan perintah berikut (Anda akan diminta memasukkan kata sandi yang Anda tetapkan selama enkripsi):

gpg -dq secrect.gpg

Menggunakan Kata Sandi Terenkripsi di Skrip Anda

Untuk menggunakan sandi terenkripsi dalam skrip, perbarui skrip sebagai berikut:

#!/bin/bash
gpg -dq secrets.gpg | sshpass rsync -avl --mkpath /home/john user_name@remote_server/home/Backup

Jalankan skrip cadangan lagi, dan kali ini Anda tidak akan dimintai kata sandi.

Otomatiskan Tugas Dengan Skrip Bash

GnuGP sering digunakan untuk mengamankan file dan data sensitif di PC Anda dan juga merupakan alat yang hebat untuk mengamankan kata sandi dalam skrip Bash otomatis di Linux.

Ada banyak hal yang dapat Anda lakukan dengan skrip Bash. Bash adalah alat yang ampuh yang dapat membantu Anda mengotomatiskan banyak hal di Linux dan belajar menulis skrip Bash adalah investasi yang berharga.