SSHPASS Alat yang sangat baik untuk login SSH non -interaktif - Never Use On Production Server
- 4581
- 239
- Luis Baumbach
Dalam kebanyakan kasus, administrator sistem Linux masuk ke server Linux jarak jauh menggunakan SSH baik dengan menyediakan kata sandi, atau login SSH tanpa kata sandi, atau otentikasi SSH berbasis keybased.
Bagaimana jika Anda ingin memasok a kata sandi bersama nama belakang untuk meminta ssh sendiri? Di sinilah sshpass datang untuk menyelamatkan.
sshpass adalah alat baris perintah sederhana dan ringan yang memungkinkan kami memberikan kata sandi (otentikasi kata sandi non-interaktif) ke prompt perintah itu sendiri, sehingga skrip shell otomatis dapat dieksekusi untuk mengambil cadangan melalui cron penjadwal.
SSH menggunakan akses langsung TTY untuk memastikan bahwa kata sandi sebenarnya disediakan oleh pengguna keyboard interaktif. Sshpass menjalankan SSH dalam tty yang dikhususkan, menyesatkannya dengan percaya bahwa ia menerima kata sandi dari pengguna interaktif.
Penting: Menggunakan sshpass dianggap paling tidak aman, karena mengungkapkan kata sandi kepada semua pengguna sistem pada baris perintah dengan sederhana "PS" memerintah. Saya sangat merekomendasikan menggunakan otentikasi tanpa kata sandi SSH.
Instal SShPass di Sistem Linux
Di dalam Redhat/centos sistem berbasis, pertama Anda perlu mengaktifkan repositori epel pada sistem Anda untuk menginstalnya menggunakan perintah yum seperti yang ditunjukkan.
# yum instal sshpass # dnf instal sshpass [on Fedora 22+ versi]
Di debian/ubuntu dan turunannya, Anda dapat menginstalnya menggunakan perintah apt-get seperti yang ditunjukkan.
$ sudo apt-get install sshpass
Atau, Anda dapat menginstal dari sumber ke versi terbaru sshpass, Pertama -tama unduh kode sumber dan kemudian ekstrak konten file tar dan instal seperti itu:
$ wget http: // sourceForge.Net/Project/SShpass/File/LARDER/Unduh -O SSHPASS.ter.gz $ tar -xvf sshpass.ter.GZ $ CD SSHPASS-1.06 $ ./Konfigurasikan # sudo buat instal
Cara menggunakan sshpass di linux
sshpass digunakan bersama dengan ssh, Anda dapat melihat semua sshpass Opsi Penggunaan dengan deskripsi lengkap dengan mengeluarkan perintah di bawah ini:
$ sshpass -hbantuan sshpass
Penggunaan: sshpass [-f | -d | -p | -e] [-hv] Parameter perintah -f nama file ambil kata sandi untuk digunakan dari nomor -d nomor penggunaan nomor sebagai deskriptor file untuk mendapatkan kata sandi -p kata sandi menyediakan kata sandi sebagai argumen ( keamanan tidak bijaksana) -e Kata sandi disahkan sebagai env -var "sshpass" tanpa parameter -kata sandi akan diambil dari stdin -h show help (layar ini) -v informasi versi cetak di sebagian besar salah satu dari -f, -d, -p atau -e harus digunakan
Seperti yang saya sebutkan sebelumnya, sshpass lebih dapat diandalkan dan berguna untuk tujuan skrip, pertimbangkan perintah contoh di bawah ini.
Masuk ke server Linux SSH jarak jauh (10.42.0.1) Dengan nama pengguna dan kata sandi dan periksa penggunaan disk sistem-sistem jarak jauh seperti yang ditunjukkan.
$ sshpass -p 'my_pass_here' ssh [email dilindungi] 'df -h'
Penting: Di sini, kata sandi disediakan pada baris perintah yang praktis tidak aman dan menggunakan opsi ini tidak disarankan.
SSHPASS - Linux Remote Login via SSHNamun, untuk mencegah menampilkan kata sandi di layar, Anda dapat menggunakan -e
bendera dan masukkan kata sandi sebagai nilai dari Sshpass Variabel lingkungan seperti di bawah ini:
$ ekspor sshpass ='my_pass_here' $ echo $ sshpass $ sshpass -e ssh [email dilindungi] 'df -h'sshpass - sembunyikan kata sandi di prompt
Catatan: Dalam contoh di atas, Sshpass Variabel lingkungan hanya untuk tujuan sementara dan akan dihapus selama reboot.
Untuk mengatur secara permanen Sshpass variabel lingkungan, buka /etc/profile File dan ketik pernyataan ekspor di awal file:
Ekspor sshpass ='my_pass_here'
Simpan file dan keluar, lalu jalankan perintah di bawah ini untuk mempengaruhi perubahan:
$ source /etc /profile
Di sisi lain, Anda juga dapat menggunakan -F
bendera dan masukkan kata sandi ke dalam file. Dengan cara ini, Anda dapat membaca kata sandi dari file sebagai berikut:
$ sshpass -f password_filename ssh [email dilindungi] 'df -h'sshpass - Suplai file kata sandi untuk masuk
Anda juga dapat menggunakan SSHPASS untuk mentransfer file menggunakan SCP atau file cadangan/sinkronisasi melalui RSYNC menggunakan SSH seperti yang ditunjukkan:
------- Transfer file menggunakan SCP ------- $ scp -r/var/www/html/contoh.com --rsh = "sshpass -p 'my_pass_here' ssh -l Aaronkilis "10.42.0.1:/var/www/html ------- Cadangan atau sinkronisasi file menggunakan rsync ------- $ rsync --rsh = "sshpass -p 'my_pass_here' ssh -l Aaronkilis "10.42.0.1:/data/cadangan//cadangan/
Untuk penggunaan lebih lanjut, saya sarankan Anda untuk membaca sshpass Halaman pria, ketik:
$ man sshpass
Dalam artikel ini, kami menjelaskan sshpass Alat sederhana yang memungkinkan otentikasi kata sandi non-interaktif. Meskipun, alat ini mungkin bermanfaat, sangat disarankan untuk menggunakan mekanisme otentikasi kunci publik SSH yang lebih aman.
Tolong, tinggalkan pertanyaan atau komentar melalui bagian umpan balik di bawah ini untuk diskusi lebih lanjut.
- « Tambahkan warna pelangi ke output perintah linux dalam gerakan lambat
- Cara menyalin file ke beberapa direktori di linux »