sshpass: ເຄື່ອງມືທີ່ດີເລີດ ສຳ ລັບການເຂົ້າສູ່ລະບົບ SSH ທີ່ບໍ່ມີການໂຕ້ຕອບ - ບໍ່ເຄີຍໃຊ້ໃນໂປແກຼມຜະລິດ


ໃນກໍລະນີຫຼາຍທີ່ສຸດ, ຜູ້ເບິ່ງແຍງລະບົບ Linux ເຂົ້າສູ່ລະບົບເຄື່ອງແມ່ຂ່າຍ Linux ທີ່ຢູ່ຫ່າງໄກສອກຫຼີກໂດຍໃຊ້ SSH ໂດຍການສະ ໜອງ ລະຫັດຜ່ານ, ຫຼືການເຂົ້າລະຫັດຜ່ານ SSH ທີ່ບໍ່ມີລະຫັດ, ຫຼືການກວດສອບ SSH ທີ່ຖືກລັອກ.

ຈະເປັນແນວໃດຖ້າທ່ານຕ້ອງການສະ ໜອງ ລະຫັດຜ່ານພ້ອມກັບຊື່ຜູ້ໃຊ້ໃຫ້ກັບ SSH ຕົວມັນເອງ? ນີ້ແມ່ນບ່ອນທີ່ sshpass ມາຊ່ວຍເຫຼືອ.

sshpass ແມ່ນເຄື່ອງມືບັນທັດຄໍາສັ່ງທີ່ງ່າຍດາຍແລະເບົາທີ່ຊ່ວຍໃຫ້ພວກເຮົາສາມາດສະ ໜອງ ລະຫັດຜ່ານ (ການກວດສອບລະຫັດຜ່ານທີ່ບໍ່ມີການໂຕ້ຕອບ) ຕໍ່ຄໍາສັ່ງຂອງມັນເອງ, ເພື່ອໃຫ້ສະຄິບແກະແບບອັດຕະໂນມັດສາມາດປະຕິບັດໄດ້ເພື່ອການສໍາຮອງຂໍ້ມູນຜ່ານ cron scheduler.

ssh ໃຊ້ການເຂົ້າໃຊ້ TTY ໂດຍກົງເພື່ອໃຫ້ແນ່ໃຈວ່າລະຫັດຜ່ານຖືກສະ ໜອງ ໂດຍຕົວຈິງຂອງຜູ້ໃຊ້ແປ້ນພິມແບບໂຕ້ຕອບ. Sshpass ແລ່ນ ssh ໃນແບບທີ່ອຸທິດຕົນ, ເຮັດໃຫ້ມັນເຂົ້າໃຈຜິດວ່າມັນໄດ້ຮັບລະຫັດຜ່ານຈາກຜູ້ໃຊ້ໂຕ້ຕອບ.

ສິ່ງ ສຳ ຄັນ: ການໃຊ້ sshpass ຖືວ່າມີຄວາມປອດໄພ ໜ້ອຍ ທີ່ສຸດ, ຍ້ອນວ່າມັນເປີດເຜີຍລະຫັດຜ່ານໃຫ້ຜູ້ໃຊ້ລະບົບທັງ ໝົດ ໃນເສັ້ນ ຄຳ ສັ່ງດ້ວຍ ຄຳ ສັ່ງ“ ps” ງ່າຍດາຍ. ຂ້ອຍຂໍແນະ ນຳ ໃຫ້ໃຊ້ SSH Passwordless authentication.

ຕິດຕັ້ງ sshpass ໃນ Linux Systems

ໃນລະບົບທີ່ອີງໃສ່ RedHat/CentOS, ທຳ ອິດທ່ານ ຈຳ ເປັນຕ້ອງສັ່ງ ຄຳ ສັ່ງ yum ດັ່ງທີ່ສະແດງໄວ້.

# yum install sshpass
# dnf install sshpass    [On Fedora 22+ versions]

ໃນ Debian/Ubuntu ແລະອະນຸພັນຂອງມັນ, ທ່ານສາມາດຕິດຕັ້ງມັນໂດຍໃຊ້ ຄຳ ສັ່ງ apt-get ດັ່ງທີ່ສະແດງໄວ້.

$ sudo apt-get install sshpass

ອີກທາງເລືອກ ໜຶ່ງ, ທ່ານສາມາດຕິດຕັ້ງຈາກແຫລ່ງທີ່ມາເພື່ອໃຫ້ມີ sshpass ລຸ້ນລ້າສຸດ, ທຳ ອິດດາວໂຫລດລະຫັດແຫຼ່ງຂໍ້ມູນແລະຈາກນັ້ນສະກັດເນື້ອຫາຂອງເອກະສານ tar ແລະຕິດຕັ້ງມັນດັ່ງນັ້ນ:

$ wget http://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz
$ tar -xvf sshpass.tar.gz
$ cd sshpass-1.06
$ ./configure
# sudo make install 

ວິທີການໃຊ້ sshpass ໃນ Linux

sshpass ໃຊ້ຮ່ວມກັນກັບ ssh, ທ່ານສາມາດເບິ່ງຕົວເລືອກການ ນຳ ໃຊ້ sshpass ທັງ ໝົດ ພ້ອມລາຍລະອຽດເຕັມໂດຍການອອກ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້:

$ sshpass -h
Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
   -f filename   Take password to use from file
   -d number     Use number as file descriptor for getting password
   -p password   Provide password as argument (security unwise)
   -e            Password is passed as env-var "SSHPASS"
   With no parameters - password will be taken from stdin

   -h            Show help (this screen)
   -V            Print version information
At most one of -f, -d, -p or -e should be used

ດັ່ງທີ່ຂ້າພະເຈົ້າໄດ້ກ່າວມາກ່ອນ, sshpass ແມ່ນມີຄວາມ ໜ້າ ເຊື່ອຖືແລະເປັນປະໂຫຍດຫຼາຍ ສຳ ລັບຈຸດປະສົງການຂຽນອັກສອນ, ພິຈາລະນາ ຄຳ ສັ່ງຕົວຢ່າງຂ້າງລຸ່ມນີ້.

ເຂົ້າສູ່ລະບົບຫ່າງໄກສອກຫຼີກຂອງເຄື່ອງແມ່ຂ່າຍ Linux ssh (10.42.0.1) ດ້ວຍຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານແລະກວດເບິ່ງການໃຊ້ໄຟລ໌ລະບົບຂອງລະບົບຫ່າງໄກສອກຫຼີກດັ່ງທີ່ສະແດງ

$ sshpass -p 'my_pass_here' ssh [email  'df -h' 

ສິ່ງ ສຳ ຄັນ: ທີ່ນີ້ລະຫັດຜ່ານແມ່ນໃຫ້ຢູ່ໃນເສັ້ນ ຄຳ ສັ່ງທີ່ບໍ່ປອດໄພແລະໃຊ້ຕົວເລືອກນີ້ບໍ່ໄດ້ຖືກແນະ ນຳ.

ເຖິງຢ່າງໃດກໍ່ຕາມ, ເພື່ອປ້ອງກັນການສະແດງລະຫັດຜ່ານໃນ ໜ້າ ຈໍ, ທ່ານສາມາດໃຊ້ທຸງ -e ແລະໃສ່ລະຫັດຜ່ານເປັນຄ່າຂອງຕົວປ່ຽນສະພາບແວດລ້ອມຂອງ SSHPASS ດັ່ງລຸ່ມນີ້:

$ export SSHPASS='my_pass_here'
$ echo $SSHPASS
$ sshpass -e ssh [email  'df -h' 

ໝາຍ ເຫດ: ໃນຕົວຢ່າງຂ້າງເທິງ, ຕົວປ່ຽນແປງສະພາບແວດລ້ອມຂອງ SSHPASS ແມ່ນ ສຳ ລັບຈຸດປະສົງຊົ່ວຄາວເທົ່ານັ້ນແລະຈະຖືກລຶບອອກໃນລະຫວ່າງການເປີດ ໃໝ່.

ເພື່ອ ກຳ ນົດຕົວປ່ຽນສະພາບແວດລ້ອມຂອງ SSHPASS ຢ່າງຖາວອນ, ເປີດເອກະສານ/etc/profile ແລະພິມ ຄຳ ຖະແຫຼງການສົ່ງອອກໃນຕອນຕົ້ນຂອງເອກະສານ:

export SSHPASS='my_pass_here'

ປະຫຍັດເອກະສານແລະອອກຈາກການ, ຫຼັງຈາກນັ້ນດໍາເນີນການຄໍາສັ່ງຂ້າງລຸ່ມນີ້ເພື່ອຜົນກະທົບການປ່ຽນແປງ:

$ source /etc/profile 

ອີກດ້ານ ໜຶ່ງ, ທ່ານຍັງສາມາດໃຊ້ທຸງ -f ແລະໃສ່ລະຫັດຜ່ານໄວ້ໃນແຟ້ມ. ວິທີນີ້, ທ່ານສາມາດອ່ານລະຫັດຜ່ານຈາກແຟ້ມດັ່ງຕໍ່ໄປນີ້:

$ sshpass -f password_filename ssh [email  'df -h'

ນອກນັ້ນທ່ານຍັງສາມາດໃຊ້ sshpass ເພື່ອ ສຳ ຮອງຂໍ້ມູນ/sync ໄຟລ໌ໃນໄລຍະ rsync ໂດຍໃຊ້ SSH ດັ່ງທີ່ສະແດງ:

------- Transfer Files Using SCP ------- 
$ scp -r /var/www/html/example.com --rsh="sshpass -p 'my_pass_here' ssh -l aaronkilik" 10.42.0.1:/var/www/html

------- Backup or Sync Files Using Rsync -------
$ rsync --rsh="sshpass -p 'my_pass_here' ssh -l aaronkilik" 10.42.0.1:/data/backup/ /backup/

ສຳ ລັບການ ນຳ ໃຊ້ຫຼາຍ, ຂ້າພະເຈົ້າຂໍແນະ ນຳ ໃຫ້ທ່ານອ່ານຜ່ານ ໜ້າ sshpass man, ໃຫ້ພິມ:

$ man sshpass

ໃນບົດຂຽນນີ້, ພວກເຮົາໄດ້ອະທິບາຍ sshpass ເຄື່ອງມືງ່າຍໆທີ່ຊ່ວຍໃຫ້ການກວດສອບລະຫັດຜ່ານທີ່ບໍ່ມີການໂຕ້ຕອບ. ເຖິງແມ່ນວ່າ, ເຄື່ອງມືເຫຼົ່ານີ້ອາດຈະເປັນປະໂຫຍດ, ແຕ່ແນະ ນຳ ໃຫ້ໃຊ້ກົນໄກການກວດສອບລະຫັດສາທາລະນະທີ່ປອດໄພກວ່າ.

ກະລຸນາ, ຢ່າປ່ອຍໃຫ້ ຄຳ ຖາມຫຼື ຄຳ ເຫັນຜ່ານພາກ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້ ສຳ ລັບການສົນທະນາຕໍ່ໄປ.