[Remoto] Conexión por ssh mediante MAC en la LAN

Se trata de conectarnos por ssh a un equipo conociendo su MAC. Como ssh necesita el parámetro de la dirección del equipo y no su MAC, he creado un script, siempre mejorable, para realizar esta función. Se ha probado en Debian 11 y 12.

  • Fichero que contiene las direcciones MAC de los equipos del aula.
    mac13.txt
    1301    04:92:26:d3:aa:f8
    1302    64:51:06:60:0e:35
    1303    4c:ed:fb:3f:0d:e6
    1304    64:51:06:60:0e:3e
    1305    04:92:26:c1:f3:c0
    1306    64:51:06:51:07:c3
    1307    e0:d5:5e:46:89:c5
    1308    64:51:06:50:f5:ae
    1309    04:92:26:c1:f3:b9
    1310    64:51:06:50:f0:eb
    1311    4c:ed:fb:3f:0f:67
    1312    64:51:06:60:0e:3c
    1313    04:92:26:d3:b1:d0
    1314    64:51:06:5b:af:0d
    1315    4c:ed:fb:3f:0f:01
    1316    e0:d5:5e:46:8d:67
    1317    4c:ed:fb:3f:0f:9a
    1318    64:51:06:52:27:55
    1319    e0:d5:5e:46:8d:33
    1320    64:51:06:57:fb:ae
    1321    e0:d5:5e:46:8d:6b
    1322    64:51:06:52:40:65
    1323    00:24:1d:c0:6a:6b
    1324    00:18:8b:2b:24:00
  • Script para conectar con un equipo del taller mediante ssh utilizando su MAC. Se usa el paquete arp-scan, previamente instalado, y debe ejecutarse con permisos de root. Instalar previamente arp-scan
    # aptitude install arp-scan
    conecta.sh
    # Variables de entrada
    #  - $1 el número del pc (1301..1324), debe tener 4 caracteres
    #  - $2 es la letra del usuario (a,b,c)
    # ejemplo de llamada: # bash conecta.sh 1301 c
    clear
    # Nombre del hostname y red
    pc_num=$1
    # comprobamos longitud de la cadena de entrada
    if [[ ${#pc_num} -ne 4 ]]; then
      echo Identificador del PC incorrecto: Debe contener 4 caracteres
      exit
    fi
    pc_nombre=pc$pc_num
    pc_red="192.168.113.0/24"
    # Buscar en archivo la mac del equipo, segundo campo de cada línea
    archivo="mac13.txt"
    pc_mac=$(grep $1 $archivo | awk '{print $2}')
    if [[ -z "$pc_mac" ]]; then
      echo "Identificador del PC no encontrado"
      exit
    fi
    # Busqueda de la IP de ese equipo
    echo Buscando en la red $pc_red la IP del equipo $pc_nombre con MAC $pc_mac...
    pc_ip=$(arp-scan $pc_red | grep $pc_mac | awk '{print $1}' | head -n1)
    if [[ -z "$pc_ip" ]]; then
      echo "PC no encontrado"
      exit
    fi
    # IP identificada, entrar por ssh en usuario...
    echo La IP del equipo $pc_nombre es $pc_ip
    echo Conectandose con usuario sti$1$2...
    ssh sti$1$2@$pc_ip

    Se llama con

    # bash conecta.sh XXXX Y

    donde XXXX es el número que identifica el equipo: el primer campo de cada fila del fichero de texto que contienen las MAC. e Y es la letra del usuario a, b o c. Ejemplo:

    # bash conecta.sh 1301 a
    
  • doc/tec/net/remoto/ssh_mac/inicio.txt
  • Última modificación: 2024/09/23 15:27
  • por euloxio