Я пытаюсь сделать скрипт для подключения к серверу через ssh, но я новичок в bash. Я не знаю ip и должен использовать nmap для сканирования диапазона. Что я хочу, так это скрипт для подключения или попытки подключения к ip из вывода nmap. (под попыткой я подразумеваю, что один из IP-адресов будет моим IP-адресом, поэтому подключение к нему бесполезно)
Все, что у меня есть, это сканирование диапазона с помощью namp -sP 192.168.42.1/24
Я нашел фильтр nmap, который сканирует только порт 22. Вот что я получаю.
$ nmap --open -p22 192.168.42.*
Starting Nmap 7.70 ( https://nmap.org ) at 2019-04-08 08:55 CEST
Nmap scan report for 192.168.42.113
Host is up (0.0057s latency).
PORT STATE SERVICE
22/tcp open ssh
Nmap done: 256 IP addresses (2 hosts up) scanned in 59.63 seconds
не только ssh к одному ip, но на выходе будет 2. Один мой и один хоста, к которому я хочу подключиться.
Вы можете просто использовать netcat, который работает быстро. nmap слишком долго сканирует диапазон.
for i in {1..254..1}
do
if nc -w 1 -zv 192.168.42.$i 22 &>> /dev/null
then
ssh 192.168.42.$i
fi
done
После того, как скрипт останавливается, он выкидывает меня из ssh, и я снова использую свою обычную оболочку. Может бесконечный цикл? Так что мне просто нужно нажать ctrl + c
Хорошо, это сработало, но для сканирования диапазона потребовалось некоторое время, около 30 секунд.
обновите это в строке 6 от fi
до fi &
. затем он будет работать параллельно
если вы получите более одного IP-адреса с открытым ssh в этом диапазоне .... тогда?