sshpass alat yang sangat baik untuk log masuk SSH yang tidak interaktif - Jangan sekali -kali digunakan pada pelayan pengeluaran
- 4309
- 898
- Dale Harris II
Dalam kebanyakan kes, pentadbir sistem Linux masuk ke pelayan Linux jauh menggunakan SSH sama ada dengan membekalkan kata laluan, atau log masuk SSH tanpa kata, atau pengesahan SSH yang dikunci.
Bagaimana jika anda mahu membekalkan a kata laluan bersama dengan nama pengguna ke ssh segera? di sinilah dimana sshpass datang untuk menyelamatkan.
sshpass adalah alat baris perintah yang mudah dan ringan yang membolehkan kami memberikan kata laluan (pengesahan kata laluan tidak interaktif) ke arahan arahan itu sendiri, supaya skrip shell automatik dapat dilaksanakan untuk mengambil sandaran melalui cron penjadual.
SSH menggunakan akses TTY lurus untuk memastikan kata laluan sebenarnya dibekalkan oleh pengguna papan kekunci interaktif. SSHPass menjalankan SSH dalam tty yang setia, menyesatkannya untuk mempercayai bahawa ia menerima kata laluan dari pengguna interaktif.
Penting: Menggunakan sshpass dianggap paling tidak selamat, kerana ia mendedahkan kata laluan kepada semua pengguna sistem pada baris arahan dengan mudah "PS" perintah. Saya sangat mengesyorkan menggunakan pengesahan tanpa kata laluan SSH.
Pasang SSHPass pada Sistem Linux
Dalam Redhat/Centos sistem berasaskan, pertama anda perlu mengaktifkan repositori epel pada sistem anda untuk memasangnya menggunakan perintah yum seperti yang ditunjukkan.
# yum Pasang sshpass # DNF Pasang sshpass [on Fedora 22+ versi]
Pada Debian/Ubuntu dan derivatifnya, anda boleh memasangnya menggunakan perintah apt-get seperti yang ditunjukkan.
$ sudo apt-get memasang sshpass
Sebagai alternatif, anda boleh memasang dari sumber untuk mempunyai versi terkini sshpass, Muat turun pertama kod sumber dan kemudian ekstrak kandungan fail tar dan pasang seperti itu:
$ wget http: // sourceforge.bersih/projek/sshpass/fail/terbaru/muat turun -o sshpass.tar.gz $ tar -xvf sshpass.tar.GZ $ CD SSHPASS-1.06 $ ./konfigurasikan # sudo membuat pemasangan
Cara menggunakan sshpass di linux
sshpass digunakan bersama dengan SSH, anda boleh melihat semua sshpass Pilihan penggunaan dengan penerangan penuh dengan mengeluarkan arahan di bawah:
$ sshpass -hSSHPASS Bantuan
Penggunaan: sshpass [-f | -d | -p | -e] [-hv] Parameter Perintah -f FileName Ambil Kata Laluan untuk digunakan dari Fail -d Nombor Penggunaan Nombor sebagai Deskriptor Fail untuk mendapatkan kata laluan -P Kata Laluan Menyediakan Kata Laluan sebagai Argumen ( Kata laluan tidak bijak) -E diluluskan sebagai env -var "sshpass" tanpa parameter -kata laluan akan diambil dari stdin -h show welant (skrin ini) -v maklumat versi cetak di kebanyakan -f, -d, -p atau -e harus digunakan
Seperti yang saya nyatakan sebelum ini, sshpass lebih dipercayai dan berguna untuk tujuan skrip, pertimbangkan perintah contoh di bawah.
Log masuk ke pelayan SSH Linux Jauh (10.42.0.1) Dengan nama pengguna dan kata laluan dan periksa penggunaan cakera sistem sistem jauh seperti yang ditunjukkan.
$ sshpass -p 'my_pass_here' SSH [dilindungi e -mel] 'df -h'
Penting: Di sini, kata laluan disediakan di baris arahan yang praktikal tidak selamat dan menggunakan pilihan ini tidak disyorkan.
SSHPASS - Log masuk jauh Linux melalui SSHWalau bagaimanapun, untuk mengelakkan menunjukkan kata laluan pada skrin, anda boleh menggunakan -e
bendera dan masukkan kata laluan sebagai nilai Sshpass Pembolehubah persekitaran seperti di bawah:
$ eksport sshpass ='my_pass_here' $ echo $ sshpass $ sshpass -e ssh [dilindungi e -mel] 'df -h'sshpass - sembunyikan kata laluan dengan segera
Catatan: Dalam contoh di atas, Sshpass Pemboleh ubah persekitaran hanya untuk tujuan sementara dan akan dikeluarkan semasa reboot.
Untuk menetapkan secara kekal Sshpass Pemboleh ubah persekitaran, buka /etc/profil Fail dan taipkan penyata eksport pada permulaan fail:
Eksport SSHPass ='my_pass_here'
Simpan fail dan keluar, kemudian jalankan arahan di bawah untuk melaksanakan perubahan:
$ sumber /etc /profil
Sebaliknya, anda juga boleh menggunakan -f
bendera dan masukkan kata laluan dalam fail. Dengan cara ini, anda boleh membaca kata laluan dari fail seperti berikut:
$ sshpass -f kata laluan_filename SSH [dilindungi e -mel] 'df -h'SSHPASS - Bekalan fail kata laluan untuk log masuk
Anda juga boleh menggunakan SSHPass untuk memindahkan fail menggunakan fail SCP atau sandaran/penyegerakan melalui RSYNC menggunakan SSH seperti yang ditunjukkan:
------- Pindahkan fail menggunakan SCP ------- $ scp -r/var/www/html/contoh.com - -rsh = "sshpass -p 'my_pass_here' ssh -l aaronkilik "10.42.0.1:/var/www/html ------- Fail sandaran atau penyegerakan menggunakan rsync ------- $ rsync - -rsh = "sshpass -p 'my_pass_here' ssh -l aaronkilik "10.42.0.1:/data/sandaran//sandaran/
Untuk penggunaan lebih lanjut, saya cadangkan anda membaca melalui sshpass Lelaki Lelaki, Jenis:
$ man sshpass
Dalam artikel ini, kami menjelaskan sshpass alat mudah yang membolehkan pengesahan kata laluan yang tidak interaktif. Walaupun, alat ini mungkin membantu, sangat disyorkan untuk menggunakan mekanisme pengesahan utama awam SSH.
Tolong, tinggalkan soalan atau komen melalui bahagian maklum balas di bawah untuk sebarang perbincangan lanjut.
- « Tambahkan warna pelangi ke output arahan linux dalam gerakan perlahan
- Cara menyalin fail ke pelbagai direktori di Linux »