扫描网络并 SSH 每个 IP,直到我通过 SSH 进入

扫描网络并 SSH 每个 IP,直到我通过 SSH 进入

通常情况下,我会使用以下命令通过 SSH 进入该机器:

ssh [email protected]

我网络中的该服务器被强制在子网中使用 DHCP(134.96.90.0)。每次它关闭时,我都必须使用以下命令查找可能的 IP:

nmap -sP 123.45.67.0/24

输出:

Starting Nmap 6.40 ( http://nmap.org ) at 2015-10-08 11:13 CEST
Nmap scan report for turning.some-name.de (123.45.67.2)
Host is up (0.00033s latency).
Nmap scan report for drucker-sek.some-name.de(123.45.67.19)
Host is up (0.0010s latency).
Nmap scan report for dhcp90-20.some-name.de (123.45.67.22)
Host is up (0.00036s latency).
Nmap scan report for dhcp90-21.some-name.de (123.45.67.27)

然后我必须手动拨打这个号码:

ssh [email protected]
ssh [email protected]
ssh [email protected]
ssh [email protected]

然后我终于知道它被分配给了123.45.67.22

如果我不能给服务器一个静态IP,有没有办法可以自动执行这个疯狂的网络扫描+多次 SSH?(假设我的网络中有 100 台以上的机器)


我可以这样做来获取 IP:

$ nmap -sP 123.45.67.0/24 | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' 

但是我该如何编写一个 for 循环或者类似的代码来让 ssh 运行,并在我成功 ssh 进入服务器后停止呢?


我可以完全访问该服务器,但无法访问网络管理员,这就像将任何笔记本电脑插入网络一样,但在这种情况下,笔记本电脑是某种昂贵的机器。我的发行版:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.3 LTS
Release:    14.04
Codename:   trusty

我也尝试过从子网内的另一台机器通过 ssh 获取机器名称:

$ ssh machine-name.some-name.de
ssh: Could not resolve hostname machine-name.some-name.de: Name or service not known

但是在服务器本身上,当我执行 ssh + tab 时,我看到

::1                         
ff02::1                     
ff02::2                     
ip6-allnodes                
ip6-allrouters
ip6-localhost
ip6-loopback
machine-name
machine-name.some-name.de

另外,我avahi-daemon已经在运行了,但似乎广播是在网络端控制的,只有其他几台机器可以广播它们的名称,drucker-sek.some-name.de例如turning.some-name.de

$ sudo avahi-daemon
Daemon already running on PID 824

答案1

那么类似这样的情况怎么样:

#! /bin/bash
for each in `nmap -sP 123.45.67.0/24 | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' `
do

    echo  $each
    nc -w 2 $each 22

    if [ $? -eq 0 ]
    then
        break;
    fi

done
ssh $each

该脚本将花 2 秒钟查看 SSH 是否依次在给定的 IP 地址上应答,当它获得第一个成功连接时,它将自动跳出循环并尝试 ssh 连接。

但是,如果您与要查找的 PC 位于同一子网,则有一种更简单的方法来查找 IP 地址 - 使用 ARP 表匹配您的卡的 MAC 地址!

相关内容