Conéctese a Linux por nombre en lugar de IP


18

Soy nuevo en Linux (actualmente ejecuta Ubuntu 10.04) y acabo de terminar de configurar el acceso SSH a mi máquina Linux. Actualmente, tengo que usar ssh root@x.x.x.xpara conectarme, pero preferiría poder cambiar la IP por el nombre de la computadora (como en Windows con \\name) o un nombre de dominio (como computername.example.com).

Realmente no sé por dónde empezar, por lo que cualquier ayuda sería muy apreciada. Vaya despacio, como se mencionó: todavía soy nuevo en esto.


EDITAR 1

Olvidé completamente mencionar que estoy tratando de conectarme desde Windows 7 (a través de PuTTY), lo siento.


¿Estás tratando de conectarte solo desde tu LAN o desde cualquier parte del mundo?
Karl Bielefeldt

66
Además, para su información, permitir conexiones a través de ssh como root generalmente se considera una mala idea en términos de seguridad. Se recomienda iniciar sesión como usuario habitual y usar su o sudo desde allí.
Karl Bielefeldt

Tanto mi LAN como el mundo (aunque creo que sé cómo configurar el acceso mundial, por lo que esta pregunta es más para LAN), y la raíz @ fue más ejemplo que nada, en realidad uso un usuario.
Ryall

Un montón de excelentes respuestas, gracias a todos, aunque tuve que elegir una, así que elegí la más detallada.
Ryall

Respuestas:


36

Protocolos de descubrimiento de LAN de configuración cero, en orden de preferencia:

  • mDNS
    • Utilizado principalmente por los productos de Apple y algunos programas de Linux, pero también disponible para Windows y posiblemente otras plataformas; usa multidifusión IP.
    • Proporciona búsqueda de nombres y descubrimiento de servicios.
    • Los nombres de host siempre están en el formulario name.local.
    • Software:
      • compatible de forma nativa con Windows 10.1709 y posterior (debe habilitarse mediante el Registro);
      • Bonjour en Windows más antiguos;
      • Avahi con nss_mdnsen Linux;
      • compatible de forma nativa con OS X e iOS (y, supuestamente, Android).
  • LLMNR
    • Utilizado para la resolución de nombres por Windows Vista y superior, como una alternativa moderna a los servicios de nombres NetBIOS.
    • Muy similar a mDNS, pero tiene menos funciones, en particular, carece de descubrimiento de servicio (Windows usa el protocolo WS-Discovery para eso).
    • Utiliza nombres de host desnudos (como NBNS, pero a diferencia de mDNS).
    • Software:
      • Compatible de forma nativa con Windows Vista y versiones posteriores;
      • systemd-resolvedcon nss_resolve(parte de systemd 216) en Linux. .
  • NetBIOS servicios de nombres
    • Parte del antiguo conjunto de protocolos de red NetBIOS utilizado por Windows, OS / 2, MS-DOS ... Todavía en uso. No es una excusa para comenzar a usarlo en nuevas redes.
    • Proporciona resolución de nombres y (hasta cierto punto) descubrimiento de servicios, también conocido como "Entorno de red" o "Mis sitios de red" en Windows.
    • Utiliza transmisiones IPv4 (algo hablador), y tiene su propio protocolo complejo y estúpido de "elección de navegador" para reducir la charla. No hay soporte para IPv6 en absoluto.
    • Software:
      • Compatible de forma nativa en Windows y OS / 2;
      • nmbdcon nss_wins(parte de Samba ) en Linux y BSD;
      • Aparentemente, OS X también lo admite de forma nativa.

Métodos que a menudo están preconfigurados para usted:

  • DNS utilizando un nombre de dominio local (interno)
    • Las puertas de enlace domésticas tienden a tener esto incorporado, como parte de la caché de DNS local. A menudo es normal dnsmasq, que puede ejecutar manualmente si está configurando una puerta de enlace basada en Linux / BSD.
    • Toman el nombre de host de su solicitud DHCP, lo registran dentro de dnsmasq bajo un dominio similar homey se ofrecen como el servidor DNS principal (actúan como caché DNS).
    • Funciona de manera predeterminada con la mayoría de los sistemas operativos, pero solo con DHCP (la puerta de enlace no conoce los nombres de host de los hosts de IP estática) y, en general, en mi experiencia tiende a ser bastante inestable.
    • Software:
      • Un cliente DHCP normal en los hosts. Debe enviar la opción de nombre de host.
      • dnsmasqen la entrada (Las configuraciones más grandes podrían usar dhcpd+ named.)

Métodos que implican la configuración manual:

  • DNS usando su propio nombre de dominio
    • Funciona en todas partes. (Sin embargo, no lo ayudará a conectarse realmente a través de Internet).
    • DNS dinámico posible si utiliza DHCP y controla un servidor DNS; de lo contrario, todos los datos son estáticos.
    • Necesita tener un nombre de dominio (que le costará unos pocos dólares).
  • subdominios DNS gratis
    • Todavía DNS, solo gratis (o mucho más barato que un dominio), pero también bastante limitado. Servicios como FreeDNS y Dyn ofrecen el registro de subdominios individuales bajo un dominio que controlan (por ejemplo myhost.dyndns.com).
      • Con demasiada frecuencia, el subdominio ya ha sido elegido por otra persona ...
    • Las actualizaciones dinámicas de DNS a menudo están permitidas (estilo DynDNS).
  • /etc/hosts
    • Un archivo de texto que enumera la dirección IP - pares de nombres de host, que deben configurarse manualmente en cada máquina cliente.
    • ( %SystemRoot%\system32\drivers\etc\hostsen Windows)
  • Configuración SSH
    • El campo "Nombre de host" en PuTTY o ~/.ssh/configen OpenSSH.
    • Debe configurarse manualmente.
  • PostIt anota en todo su escritorio
    • Muy barato. No hay política de nombres. Infinitos tipos de datos.
    • Más bien poco confiable. Debe ser distribuido manualmente. Sin TTL, lo que a menudo da como resultado que la información obsoleta se almacene en caché durante meses hasta que alguien se dé cuenta. Los algoritmos de consulta son ineficientes. Las respuestas a las consultas tienden a perderse fácilmente, a veces dejando solo un registro de pegamento en su monitor. (Tres meses después, puede encontrarlos almacenados detrás de su escritorio).

77
Jaja, me gusta la opción de notas PostIt :)
Ryall

1
+1 para mDNS / Avahi. Avahi se instala de manera predeterminada en muchas distribuciones, pero puede ser un paquete de instalación para el suyo.
Broam

1
En Debian, deberá instalar Avahi manualmente.
Martin Ueding

2
@grawity Buena respuesta. Sin embargo, hay una cosa que hay que mejorar: tenga en cuenta que el DNS / DHCP local funciona perfectamente sin un dominio registrado. Simplemente coloque un Raspberry PI debajo de su escritorio y configure un pequeño servidor con, por ejemplo, dnsmasq.
paradoja

1
@paradoxon: Gracias, olvidé mencionar eso. (La mayoría de las pasarelas domésticas tienen ya correr dnsmasq o algo similar, pero crappier.)
user1686

4

Dos opciones.

  • Todos los servicios:

Pon una entrada para ello /etc/hosts. No toque las líneas existentes, agregue una nueva.

  • solo ssh:

Agregue una Hostestrofa ~/.ssh/configcon el nombre que desea usar, luego agregue las opciones deseadas debajo de eso. Ver man 5 ssh_configpara más detalles.

Host myserver
    Hostname 192.168.123.234
    Protocol 2

4

Si desea acceder al cuadro de Linux desde una computadora arbitraria, necesitaría un nombre de dominio. Use un servicio DNS dinámico para apuntar un nombre de dominio a su computadora Linux (o al enrutador al que está conectado). Una vez que configure esto, le brindará el beneficio adicional de no tener que preocuparse de que la IP de su computadora Linux cambie.


1
Solo para aclarar, la dirección IP de la computadora aún puede cambiar (dependiendo de cómo su ISP maneje esas cosas), pero no tendrá que preocuparse por ello, ya que el servicio DNS dinámico proporciona un nombre de dominio que siempre se asigna a cualquiera que sea el actual La dirección IP de la computadora es.
David Z

4

Desde Windows 7 (según su edición) ...

Start -> Run -> notepad c:\windows\system32\drivers\etc\hosts

Cuando se inicia el bloc de notas, vaya al final del archivo y agregue su dirección IP y nombre de host:

x.x.x.x    mylinuxhostname mylinuxhostname.domain.com

Guarde el archivo, luego intente hacer ping desde un símbolo del sistema:

c:\> ping mylinuxhostname
c:\> ping mylinuxhostname.domain.com

Esto solo funcionará desde su LAN. Conectarse a él desde "el mundo" (según su comentario agregado) es una bestia completamente diferente que involucra un DNS (dyndns, godaddy, etc.) y una configuración de enrutador como la traducción de direcciones de red (NAT), etc.


2

Vas a querer investigar Samba o Winbind. Mi red totalmente Linux (incluido el enrutador) puede comunicarse entre sí por nombre de host, pero no estoy seguro de cómo decirle a Windows cuál es el nombre de una máquina Linux.


1
Mi red hace esto debido a Avahi (redes Zeroconf). No sé la viabilidad de un cliente / servidor Zeroconf en Windows.
Broam

1

También estoy usando Ubuntu 10.04 y puedo conectarme a mis máquinas usando su nombre. Digamos que tengo computadoras llamadas ernie y bert que están en la misma red:

Mi mensaje se ve así en ernie:

ernie:~$ 

Si escribo esto:

ernie:~$ ssh root@bert.local

Seré root en bert:

bert:~#

Hago esto entre dos máquinas ubuntu, pero supongo que también funcionaría en masilla. (No sé acerca de cómo conectarse a Windows desde Ubuntu, vea otras respuestas sobre samba).

Tienes que instalar sshd en Ubuntu para que esto funcione: sudo apt-get install openssh-server


1
Esto se debe a Avahi, un demonio Zeroconf que se instala por defecto. No lo va a ayudar en Windows, a menos que tenga un cliente por alguna otra razón (¿quizás iTunes instala uno? No puedo decirlo)
Broam
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.