[Catatan Editor, 29 Nov 2021:Semua contoh pemberian kata sandi pada baris perintah termasuk risiko kata sandi ditangkap dalam riwayat shell pengguna (jika didukung) atau terlihat oleh semua pengguna sistem dalam daftar proses. Pakar keamanan menyarankan untuk menghapus semua file dan menghapus log shell.]
Menghubungkan dan mentransfer file ke sistem jarak jauh adalah sesuatu yang selalu dilakukan oleh administrator sistem. Salah satu alat penting yang digunakan oleh banyak administrator sistem pada platform Linux adalah SSH. SSH mendukung dua bentuk otentikasi:
- Otentikasi sandi
- Otentikasi kunci publik
Otentikasi kunci publik dianggap sebagai bentuk paling aman dari kedua metode ini, meskipun otentikasi kata sandi adalah yang paling populer dan termudah. Namun, dengan otentikasi kata sandi, pengguna selalu diminta untuk memasukkan kata sandi. Pengulangan ini membosankan. Selain itu, SSH juga memerlukan intervensi manual saat digunakan dalam skrip shell. Jika otomatisasi diperlukan saat menggunakan otentikasi kata sandi SSH, maka alat sederhana yang disebut sshpass sangat diperlukan.
Apa itu sshpass?
sshpass utilitas dirancang untuk menjalankan SSH menggunakan keyboard-interactive mode otentikasi kata sandi, tetapi dengan cara non-interaktif.
SSH menggunakan akses TTY langsung untuk memastikan bahwa kata sandi memang dikeluarkan oleh pengguna keyboard interaktif. sshpass menjalankan SSH dalam TTY khusus, membodohi SSH dengan mengira SSH mendapatkan kata sandi dari pengguna interaktif.
Instal sshpass
Anda dapat menginstal sshpass dengan perintah sederhana ini:
# yum install sshpass Gunakan sshpass
Tentukan perintah yang ingin Anda jalankan setelah sshpass pilihan. Biasanya, perintahnya adalah ssh dengan argumen, tetapi juga bisa berupa perintah lain. Namun, permintaan kata sandi SSH saat ini di-hardcode menjadi sshpass .
Sinopsis sshpass perintah dijelaskan di bawah ini:
sshpass [-ffilename|-dnum|-ppassword|-e] [options] command arguments Dimana:
-ppassword
The password is given on the command line.
-ffilename
The password is the first line of the file filename.
-dnumber
number is a file descriptor inherited by sshpass from the runner. The password is read from the open file descriptor.
-e
The password is taken from the environment variable "SSHPASS". Contoh
Untuk lebih memahami nilai dan penggunaan sshpass , mari kita lihat beberapa contoh dengan beberapa utilitas yang berbeda, termasuk SSH, Rsync, Scp, dan GPG.
Contoh 1:SSH
Gunakan sshpass untuk masuk ke server jauh dengan menggunakan SSH. Anggap saja sandinya adalah!4u2tryhack . Berikut adalah beberapa cara untuk menggunakan opsi sshpass.
A. Gunakan -p (ini dianggap sebagai pilihan yang paling tidak aman dan tidak boleh digunakan):
$ sshpass -p !4u2tryhack ssh [email protected]
-p opsi terlihat seperti ini ketika digunakan dalam skrip shell:
$ sshpass -p !4u2tryhack ssh -o StrictHostKeyChecking=no [email protected]
B. Gunakan -f opsi (kata sandi harus baris pertama dari nama file):
$ echo '!4u2tryhack' >pass_file
$ chmod 0400 pass_file
$ sshpass -f pass_file ssh [email protected]
$ chmod 0400 pass_file sangat penting untuk memastikan keamanan file kata sandi. umask default pada RHEL adalah 033, yang akan memungkinkan pembacaan dunia ke file.
Berikut adalah -f opsi saat digunakan dalam skrip shell:
$ sshpass -f pass_file ssh -o StrictHostKeyChecking=no [email protected]
C. Gunakan -e opsi (kata sandi harus baris pertama dari nama file):
$ SSHPASS='!4u2tryhack' sshpass -e ssh [email protected]
-e opsi ketika digunakan dalam skrip shell terlihat seperti ini:
$ SSHPASS='!4u2tryhack' sshpass -e ssh -o StrictHostKeyChecking=no [email protected] Contoh 2:Rsync
Gunakan sshpass dengan rsync :
$ SSHPASS='!4u2tryhack' rsync --rsh="sshpass -e ssh -l username" /custom/ host.example.com:/opt/custom/
Di atas menggunakan -e opsi, yang meneruskan kata sandi ke variabel lingkungan SSHPASS
Kita dapat menggunakan -f beralih seperti ini:
$ rsync --rsh="sshpass -f pass_file ssh -l username" /custom/ host.example.com:/opt/custom/ Contoh 3:Scp
Gunakan sshpass dengan scp:
$ scp -r /var/www/html/example.com --rsh="sshpass -f pass_file ssh -l user" host.example.com:/var/www/html Contoh 4:GPG
Anda juga dapat menggunakan sshpass dengan file terenkripsi GPG. Ketika -f switch digunakan, file referensi dalam plaintext. Mari kita lihat bagaimana kita dapat mengenkripsi file dengan GPG dan menggunakannya.
Pertama, buat file sebagai berikut:
$ echo '!4u2tryhack' > .sshpasswd
Selanjutnya, enkripsi file menggunakan gpg perintah:
$ gpg -c .sshpasswd Hapus file yang berisi plaintext:
$ rm .sshpasswd Terakhir, gunakan sebagai berikut:
$ gpg -d -q .sshpasswd.gpg | sshpass ssh [email protected] Menutup
sshpass adalah alat sederhana yang dapat sangat membantu sysadmin. Ini tidak, dengan cara apa pun, mengesampingkan bentuk autentikasi SSH yang paling aman, yaitu autentikasi kunci publik. Namun, sshpass juga dapat ditambahkan ke kotak alat sysadmin.
[ Kursus online gratis:Tinjauan teknis Red Hat Enterprise Linux. ]