ssh con ip dinámica [solucionado]

12 posts / 0 new
Last post
santiago.camblor
santiago.camblor's picture
ssh con ip dinámica [solucionado]

¿Como puedo conectarme por ssh a un ordenador de mi red local pero del que desconozco la ip porque es dinámica?

mbouzada
ssh con ip dinámica

¿Tienes posibilidad de fijar la Ip de los equipos de la red local, al menos de aquellos a los que quieras acceder?

Si es que si, tedejo un como.

http://blog.zoogon.net/2013/01/acceder-desde-internet-tu-raspberry-pi.html

Si es que no, solo se me ocurre algo que puede ser muy rebuscado.

  • Hacer (manualmente un listado de los equipos y de su MAC correspondiente.
  • Usar nmap para listar todos los equipos sudo nmap -sP 192.168.0.0/24

https://nideaderedes.urlansoft.com/2013/12/23/linux-como-puedo-saber-que...

Sería cosa de currarse un script a partir de estos datos, cosa que por ahora yo no me comprometo :-).

santiago.camblor
santiago.camblor's picture
imposible ip estática

No puedo usar ip estáticas. Con ellas sé hacerlo. Pensé que habría forma de hacerlo a través del nombre del host. Pero si la cosa es complicada, prefiero pasar. Tengo demasiadas cosas que hacer ahora.

Al final probablemente instalemos minino queiles en todos los ordenadores de mi centro que son más de 200.

mbouzada
ssh con ip dinámica

Antonio encontró esto: https://sites.google.com/site/joergtinner/


MAC to IP  (Linux)
mac2ip is a bash-script to execute commands needing an IP with the Mac-Address instead.
Examples:
        mac2ip A1:B2:C3:D4:E5:F6 "ssh root@IP"
        mac2ip A1:B2:C3:D4:E5:F6 "krdc IP"

Cuando lo ejecuto:

miguel@asustao:~/Descargas$ sh ./mac2ip

Running programs with the MAC instead of the IP.

SYNTAX: mac2ip MAC "CMD"

MAC - is the Mac-Address (or distinctive[!] part)
      you want to get substituted by the related IP.
CMD - is the command you want to execute. Please write
      it in quotes and use "IP" instead of the IP.

Examples: mac2ip A1:B2:C3:D4:E5:F6 "ssh root@IP"
          mac2ip B2:C3:D4 "vncviewer IP:1"
          mac2ip A1:B2:C3:D4:E5:F6 "krdc IP"
Tip:      mac2ip x x (will give you a MAC list.)
Note:     depends on ping, ifconfig and arp.

apoyalo en mi primer comentario para obtener la MAC de los equipos con sudo nmap -sP 192.168.0.0/24

santiago.camblor
santiago.camblor's picture
Gracias

Muchas gracias, Mbouzada. Como siempre, encontráis soluciones para todo.

mbouzada
ssh con ip dinámica

Bueno, tras una conversación con los técnicos de la empresa que nos patrocina, ya encontramos una solución «redonda», usar «avahi» para que nos presente nuestros equipos en la red con un nombre dns, algo como:

alumno01.local, alumno02.local, alumno03.local ... alumnoNN.local

lo que nos permite hacer: ssh usuario@alumno01.local para acceder al equipo con el nombre de máquina (hostname) alumno01

Instalar:

Máquina cliente (la que busca)
    sudo apt-get install avahi-daemon avahi-dnsconfd avahi-discover avahi-utils libnss-mdns

Máquina servidor (máquina destino)
     sudo apt-get install avahi-daemon avahi-dnsconfd avahi-discover avahi-utils

Supongo que SSH ya está instalado, en todo caso recordar:

  • Máquina cliente - necesita openssh-client
  • Máquina servidor - necesita openssh-server

Comprobaciones/depuración en equipo cliente/buscador

Nota: Las comprobaciones solo son necesarias si hay algún fallo.

Verificar la configuración de libnss-mdns
    sudo nano /etc/nsswitch.conf
la linea «hosts» debería tener mdns4_minimal o mdns4 antes de [NOTFOUND=return] y antes de dns
    hosts:          files mdns4_minimal [NOTFOUND=return] dns

Verificar estado servicio avahi-dnsconfd
    sudo service avahi-dnsconfd status

Ejecutar avahi-discover
    El equipo debe aparecer en IPv4 → local → Estación de trabajo

 

 

 

 

 

 

 

Puedes acceder a esta misma información en terminal con: avahi-browse -alr

Verificar si resuelve nombres de host
    avahi-resolve -4 --name nombre-equipo.local

Prueba de ping
    ping nombre-equipo.local

Comprobaciones/depuración en equipo servidor/destino

Verificar estado servicio avahi-daemon
    sudo service avahi-daemon status

De forma predeterminada, avahi publica el servicio _workstation._tcp
compruebalo usando avahi-discover en la máquina cliente (ver captura),
si no aparece, intenta activarlo en /etc/avahi/avahi-daemon.conf (eliminar # )
    publish-workstation=yes

Luego reinicia el servicio:
    sudo service avahi-daemon restart

Revisar otra vez.

Notas

Recuerda que Queiles ya usa systemctl para controlar los servicios.
Te dejo un prontuario básico por si lo necesitas:
 
Activar servicios
    sudo systemctl enable avahi-daemon.socket
    sudo systemctl enable avahi-daemon.service

Detener temporalmente
    sudo systemctl stop avahi-daemon.socket
    sudo systemctl stop avahi-daemon.service

Desactivar (impedir que arranque en el inicio)
    sudo systemctl disable avahi-daemon

Aplicable a PicarOS

Por diferencias en las versiones de «ssh», puede darse el caso de que por diferencias en los ficheros de configuración, surjan problemas del tipo «Permission denied (publickey).»

Editamos el fichero de configuración
    sudo nano /etc/ssh/sshd_config

Buscamos las líneas:

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no

Y cambiamos el valor de la línea «PasswordAuthentication» a (cualquiera de las tres)

PasswordAuthentication yes
#PasswordAuthentication no
#PasswordAuthentication yes

Cualquiera menos dejar útil la negación

Cambiar nombre de máquina de forma rápida

Esto solo funcionará en MiniNo, para PicarOS leer más adelante

sudo hostnamectl set-hostname nombre-equipo

Si usamos la orden sin sudo, nos abrirá una ventana para pedir la contraseña.

Para confirmar que cambió el nombre

hostnamectl

~$ hostnamectl
   Static hostname: nombre-equipo
         Icon name: computer
           Chassis: n/a
        Machine ID: 5cffxxxxxxxxxxxxxxxxxxxxxx2b153e
           Boot ID: bb7cxxxxxxxxxxxxxxxxxxxxxx612978
  Operating System: Debian GNU/Linux 8 (jessie)
            Kernel: Linux 3.16.0-5-686-pae
      Architecture: x86

En PicarOS tenemos una herramienta que pedimos prestada a Huayra

Menú → Herramientas del sistema → Identidad en la red

Sinó, deberemos seguir la técnica antigua (pre-systemd) de editar:

sudo nano /etc/hostname

Cambiamos el nombre y, opcionalmente (recomendamos que se haga pero no es estrictamente necesario para este uso), editamos

sudo nano /etc/hosts

y lo dejamos así:

127.0.0.1       localhost
127.0.1.1       nombre-equipo

Despues de guardar (Ctrl 0) y salir (Ctrl X) ejecutamos

/etc/init.d/hostname.sh start

santiago.camblor
santiago.camblor's picture
dominio

¿Y cómo se pone el nombre del dominio?

santiago.camblor
santiago.camblor's picture
Ya veo que local es el

Ya veo que local es el dominio por defecto

mbouzada
ssh con ip dinámica

El dominio es siempre «local» y es cosa de avahi hacerlo :-)

Si lo que queremos es que la dirección tenga un dominio personalizado (alumno01@aula-s04) eso ya es harina de otro costal y ni idea de si puede hacerse.

santiago.camblor
santiago.camblor's picture
¡¡¡Funciona!!!

Muchas gracias Mbouzada. Funciona y ha sido sencillísimo.

santiago.camblor
santiago.camblor's picture
permission denied

En su momento, cuando lo probé, funcionaba perfectamente. Ahora quiero usarlo y tengo problemas. Al hacer #ssh root@nombre.local me pide contraseña y al ponerla (he comprobado que es correcta) me da el mensaje " Permission denied, please try again"

Puedo hacerlo con otro usuario, pero con root no.

mbouzada
acceso ssh como root

En buena lógica, by default, no se permite el acceso como root. Lo normal es que una vez dentro subas a root. (https://kb.iweb.com/hc/es/articles/230241728-Utilizar-el-comando-su-y-ca...)

Si quieres activar la posibilidad de hacerlo:

https://www.linuxito.com/seguridad/744-como-implementar-un-acceso-ssh-co...

o

https://clouding.io/kb/bloquear-o-deshabilitar-el-acceso-de-root-por-ssh/

eso si, después no te quejes :-)