Lama saya mencari ini, saya ingin tahu apakah mungkin untuk memasukkan kata sandi dalam skrip shell? Banyak jawaban yang dikembalikan tanpa. Baru-baru ini saya membaca sebuah artikel yang menyatakan bahwa cara menyampaikan kata sandi dalam skrip shell. Saya sudah mencobanya, tetapi sepertinya tidak berhasil. Ini tautannya . Adakah yang bisa checkitout dan kembali? Juga tolong katakan padaku apakah ada cara untuk mengirimkan kata sandi dalam skrip shell? Jika tidak, tolong katakan padaku bagaimana linux mendapatkan input untuk kata sandi?
help '\read'
.zsh
dalamnya dapat dicapai melaluiread -s 'pw?Prompt text'
, di manapw
ada variabel di mana kata sandi akan ditempatkan dan-s
merupakan bendera untuk menyembunyikan input.Ke program mana Anda ingin memberikan kata sandi?
Skrip pada tautan berfungsi untuk saya. Perhatikan bahwa ini bukan skrip shell tetapi skrip ekspektasi (membutuhkan paket yang
expect
akan diinstal`). Menggunakan harapkan adalah cara umum untuk mengotomatisasi program interaktif berbasis teks.ssh
Login non-interaktif sering dilakukan menggunakan otentikasi berbasis kunci dengan frasa sandi kosong.Beberapa program lain (seperti
sudo
) memiliki opsi untuk membaca kata sandi dari stdin.Memberikan kata sandi sebagai opsi baris perintah seringkali merupakan masalah keamanan karena pada kebanyakan sistem setiap pengguna dapat melihat proses pengguna lain termasuk argumen baris perintah yang menggunakan alat sederhana seperti
ps
.sumber
ssh-keygen
untuk membuat kunci otentikasi (cukup tekan Enter ketika ditanyai frasa sandi) dan salin ke pengguna jarak jauh menggunakanssh-copy-id
. Jika otentikasi kunci diaktifkan untuk sshd (ini secara default) ssh kemudian akan tidak meminta kata sandi.Sebuah skrip seharusnya tidak pernah benar-benar menangani kata sandi. Miliki aplikasi mana saja yang memerlukan kata sandi untuk menanyakannya sendiri, atau jika itu tidak memungkinkan, temukan cara yang lebih baik untuk mengautentikasi dengan aplikasi tersebut. Silakan baca http://mywiki.wooledge.org/BashFAQ/069
sumber
Ada cara untuk menyimpan kata sandi dalam skrip bash tetapi Anda harus mengenkripsi skrip tersebut sehingga tidak ada yang bisa membacanya, atau menjalankan semua jenis debugger di atasnya untuk melihat apa yang dilakukannya. Untuk mengenkripsi skrip bash / shell dan membuatnya benar-benar dapat dieksekusi, coba salin dan tempel di sini
Pada halaman di atas, yang harus Anda lakukan adalah mengirimkan skrip Anda (Anda dapat mengirimkan skrip sampel terlebih dahulu untuk ketenangan pikiran Anda). File zip akan dibuat untuk Anda. Klik kanan pada tautan unduhan dan salin URL yang Anda berikan. Lalu, buka kotak UNIX Anda dan lakukan langkah-langkah berikut.
Instalasi:
Apa yang akan dilakukan perintah instalasi di atas untuk Anda adalah:
Ini akan menginstal skrip terenkripsi di direktori
/var/tmp/KINGLAZY/SHIELDX-(your-script-name)
.Ini akan menempatkan tautan ke skrip terenkripsi ini di direktori mana pun yang Anda tentukan sebagai pengganti
/home/(your-username)
- dengan cara itu, ia memungkinkan Anda untuk dengan mudah mengakses skrip tanpa harus mengetikkan path absolut.Pastikan TIDAK ADA yang dapat memodifikasi skrip - Upaya apa pun untuk memodifikasi skrip terenkripsi akan membuatnya tidak dapat dioperasikan ... hingga upaya tersebut dihentikan atau dihapus.
Memastikan benar-benar TIDAK ADA yang bisa menyalinnya. Tidak ada yang dapat menyalin skrip Anda ke lokasi terpencil dan mencoba untuk membukanya untuk melihat cara kerjanya. Semua salinan skrip harus berupa tautan ke lokasi asli yang Anda tentukan saat menginstal.
CATATAN:
Saya tidak percaya ini berfungsi untuk skrip interaktif yang meminta pengguna untuk merespons. Nilai harus di-hardcode ke dalam skrip. Enkripsi memastikan tidak ada yang benar-benar dapat melihat nilai-nilai itu sehingga Anda tidak perlu khawatir tentang itu.
sumber
Anda cukup melakukan sesuatu seperti ini.
sumber
sumber