Xác minh xác thực SSH với Bash Shell Script? [bản sao]
Oct 20 2020
Tôi cần kiểm tra xác thực SSH trên một số máy chủ. Giả sử Địa chỉ IP của những máy chủ đó được lưu trong ip.txttệp
Tôi đã viết tập lệnh tương tự bằng Python bằng cách sử dụng paramikovà netmikomô-đun.
Vấn đề bây giờ tôi đã kiểm tra nó từ một máy chủ không có Python3 hoặc kết nối Internet.
Do đó, cài đặt các công cụ của bên thứ 3 hoặc mô-đun Python không phải là một tùy chọn ở đây.
expect, sshpasscũng không có sẵn.
Điều duy nhất có sẵn là tập lệnh bash. Có thể làm điều này trên Bash một mình không? Làm cách nào để chuyển passwordđến ssh?
Trả lời
4 user14251572 Oct 20 2020 at 13:19
Vâng nó có thể.
#!/bin/bash
hostname='127.0.0.1'
username='u'
password='p'
command='ls -l'
echo_pass="~/echo_pass"
echo "echo $password" > "$echo_pass"
chmod +x "$echo_pass" SSH_OPTIONS='-o StrictHostKeyChecking=no' DISPLAY=localhost:0.0 SSH_ASKPASS=$echo_pass
export DISPLAY
export SSH_ASKPASS
setsid ssh $SSH_OPTIONS $username@$hostname $command \
&& echo "\n $hostname | SSH OK\n" \ || echo "\n $hostname | SSH PROBLEM\n"
đầu ra
$ ./script.sh total 0 127.0.0.1 | SSH OK $