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.
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
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:
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:
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.
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.
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"
¿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.
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 :-).
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.
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
Muchas gracias, Mbouzada. Como siempre, encontráis soluciones para todo.
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:
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
¿Y cómo se pone el nombre del dominio?
Ya veo que local es el dominio por defecto
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.
Muchas gracias Mbouzada. Funciona y ha sido sencillísimo.
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.
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 :-)