У меня есть несколько систем, подключенных к одному сетевому коммутатору. Все они работают под управлением Linux / Ubuntu 18.
Я хочу получить удаленный доступ с одной машины к другой через ssh.
То есть, если я работаю на одной из машин, я хочу получить удаленный доступ к другой через ssh.
Как я могу это сделать?
Предположим, я не знаю IP-адресов ни одной из машин и просто имею доступ к одной из них. Мне потребуются шаги для получения IP-адресов другой машины. Мне разрешено управлять ТОЛЬКО одной машиной на том же коммутаторе, к которому у меня есть доступ
Например. У меня есть машина A, B, C, D, подключенная к коммутатору S. У меня есть доступ только к A и ни к чему другому.
Я наткнулся на несколько ответов SO, которые советовали использовать arp -a, но никогда не выходили за рамки этого.
Какие у меня есть варианты сделать что-то подобное?
Предполагая, что это простой переключатель, и ни одна из машин не имеет firewalld или iptabables, блокирующих весь входящий трафик, я бы использовал ping, tcpping, nmap или даже просто ssh и использовал сценарий bash для перебора доступных IP-адресов в сети.
Предполагая, что вы знаете маску сети, вы можете определить диапазон IP-адресов сети и работать оттуда.
Или вы можете использовать что-то вроде этого:
#!/bin/bash
for destination in `arp -a | tail +5 | awk '{print $2}'`
do
nslookup $destination 1>/tmp/arp$$ 2>/dev/null
if [ `wc -l /tmp/arp$$ | awk '{print $1}'` -ge 4 ]; then
tail -2 /tmp/arp$$ | grep Address | awk '{print $2}'
fi
done
rm /tmp/arp$$
Но это только в том случае, если вы знаете, что все они имеют статические IP-адреса в одном сетевом диапазоне или динамические адреса DHCP в одном диапазоне. Если бы не единственный способ сказать, можно было бы заглянуть в переключатель и выгрузить туда таблицу arp.