¿Cuál es la mejor forma de SSH para máquinas en la red local?

61

Tengo 2 computadoras, una que uso y otra para los niños. Quiero poder ingresar a su computadora para controlarlo (como apagarlo, etc.) pero tengo curiosidad por saber la mejor manera de hacerlo. Ambos estamos en la misma casa y compartimos la misma conexión a Internet.

Cuál sería la mejor forma de hacer esto? De la investigación, leí para instalar openssh-server en la computadora remota, pero no sé qué usar para el nombre de host cuando intento conectarme. Por lo general, para VPS es la IP externa, pero dado que ambos compartimos una conexión wifi, ¿sería la IP del hardware? ¿Deberíamos interactuar directamente por LAN o por Internet?

dukevin
fuente

Respuestas:

58

Correr:

avahi-browse -tl _workstation._tcp

Para obtener una lista de las estaciones de trabajo de Ubuntu en la red local, puede conectarse a ellas ejecutando:

ssh <username>@<computer-name>.local
Eric Carvalho
fuente
77
Nota: para avahi-browse, necesitará instalar el avahi-utilspaquete (que también atraerá avahi-daemon, el servicio que proporciona la capacidad de direccionamiento local).
Piskvor
2
@Piskvor Buen punto. Este paquete ya está instalado por defecto en Ubuntu Desktop, pero no conozco otros sabores (kubuntu, lubuntu, etc.). Si no está instalado, simplemente ejecute sudo apt-get install avahi-utils.
Eric Carvalho
entonces, ¿sería necesario configurar un servidor ssh o, por ejemplo, ubuntu 14.04 ejecuta uno por defecto?
tobi
1
El servidor @tobi SSH no está instalado de forma predeterminada. Tienes que instalarlo.
Eric Carvalho
2
la lista parece vacía después de correr avahi. Ambas computadoras están conectadas al mismo enrutador
Jose Ospina
15

Puede usar la dirección IP para ingresar en la computadora del niño. Si desea utilizar el nombre de la computadora, edite su archivo / etc / hosts para incluir el nombre de la computadora.

192.168.1.104  dad
192.168.1.105  kids
Ed Manet
fuente
12
Debe señalar que las IP deben asignarse estáticamente a las computadoras.
Alaa Ali
3
Puede habilitar sshpor nombre sin editar el archivo de hosts nombrando hosts en ~/.ssh/config: howtogeek.com/75007/…
Nathan Long
@NathanLong - ¡Buen consejo! aunque se podría argumentar que tenerlo en el archivo hosts permite acceder a cualquier servicio (si se desea).
stefgosselin
9

Antes de hacer ssh, verifique si el cliente y el servidor ssh. Si no tiene estos servicios instale

 sudo apt-get install openssh-client

 sudo apt-get install openssh-server

Si ya acabas de hacer

 ssh username@ipaddress

 Enter connecting device login password.

Ejemplo:

 ssh [email protected]

 [email protected]'s password:********

Si recibiste algún error como: "Permiso denegado, vuelve a intentarlo".

Verifique dos veces el nombre de usuario y la ip.

PAC
fuente
8

Utilizo el archivo ~ / .ssh / config que ssh analiza automáticamente, aquí hay un ejemplo:

Host *
ControlMaster auto
ControlPath /tmp/%r@%h:%p

KeepAlive yes 
ServerAliveInterval 60
ServerAliveCountMax 10
ControlPersist 1h

Host server1
        User user1
        HostName server1-web.example.org

Host server2
        User user2
        HostName server2-db.example.org
        Compression yes
        IdentityFile /home/user/.ssh/different_key.pem

Tenga en cuenta que puede usar cualquier variable (del lado del cliente) en este archivo y configurarla globalmente o por servidor.

Shadok
fuente
Entonces, ¿cómo se configura la instalación de DNS de un dispositivo de puerta de enlace de Internet para asociar server1-web.example.orgy server2-db.example.orgcon los servidores respectivos?
Damian Yerrick
5
  1. Puede enviar ssh directamente a una IP local siempre que su LAN use IP estáticas, por ejemplo
    ssh [email protected]

  2. Puede editar el archivo hosts en ambas computadoras, como lo menciona Ed Manet en su respuesta . De esa manera, puede usar ssh usando el nombre de host de la computadora, es decirssh someuser@some_hostname

  3. Puede configurar un servidor DNS local para resolver los hosts de su LAN. De esta forma, podrá usar ssh utilizando el nombre de host de la computadora como en la opción 2, pero con un beneficio adicional, evitará editar cada archivo de hosts, apuntando su servidor DNS en la configuración de red de Ubuntu.

DNSMasq es un servidor DNS bastante bueno, fácil de configurar.
Otra opción es BIND .

Stef K
fuente
3

Use la dirección IP de LAN local. El enfoque alternativo requiere que algún puerto esté abierto a Internet, para permitirle iniciar sesión.

Además, necesitaría una asignación de puertos (en el enrutador). El uso de su dirección IP 'pública' (en el enrutador) como destino no se conectará a ninguna de sus dos PC.


La forma más simple es asignar permanentemente cada dirección IP (para sus 2 computadoras) en el enrutador. Luego, simplemente conéctese a esa dirección IP.

Si desea ser inteligente (más adelante), configure un servidor y comience a usar un servicio DNS local para asignar nombres significativos a cada dispositivo. Realmente no vale la pena por solo 2 PC.

david6
fuente
1
Nota: muchos enrutadores domésticos decentes hoy en día leerán los nombres de host de las estaciones de trabajo durante la asignación de la dirección IP y lo resolverán para el DNS local. Por desgracia, esta no es una característica universal por el momento.
Piskvor
2

Si está compartiendo la misma conexión a Internet, lo más probable es que esté detrás del mismo enrutador wifi. Entonces te conectas directamente a la computadora de tus hijos:

ssh <IP-address>

o:

ssh <user-name>@<IP-address>

Obviamente, esto funciona mejor si la computadora de los niños tiene una dirección IP estática. De lo contrario, siempre debe verificar cuál es la IP. La mayoría de los enrutadores tienen una opción para asignar IP estática (siempre la misma) a los dispositivos elegidos. Algunos enrutadores también tienen una opción para asignar el nombre de host a cierto dispositivo; luego, para cualquier dispositivo en la misma dirección de red, "niños" significaría lo mismo. Si asigna nombres de host con el archivo / etc / hosts, el nombre de host solo será conocido en la computadora donde se encuentra ese archivo de host. También eso supone que la computadora de los niños tiene una dirección IP estática.

Puede configurar la IP estática en la computadora de los niños también en esa máquina, pero le recomiendo configurar la configuración de red en el enrutador. Un punto de control: más fácil de administrar. Si algo no está claro, deje un comentario y ampliaré mi respuesta.

Tanel Mae
fuente
He intentado su sugerencia, pero recibí un error: ssh: connect to host xxx.xxx.x.xx port 22: connection refused¿hay alguna configuración adicional necesaria?
lukaszkups
Debe haber un servidor ssh ejecutándose en esa máquina y ningún firewall bloqueándolo, etc. Podría ser que ssh se haya configurado para esperar conexiones en algún otro puerto, en cuyo caso es posible utilizar el indicador -p para usar algo más que el puerto predeterminado (22).
Tanel Mae
0

Puede usar la dirección IP en lugar de un nombre de host o asignar un nombre de host personalizado en su /etc/hostsarchivo.

Para obtener la IP en la computadora del niño: en el menú de red, consulte "Información de conexión" o ejecute ifconfigen la línea de comandos (esto debe hacerse en la computadora del niño).

Su enrutador wifi asigna estas direcciones IP y debe poder configurarlo para mantener direcciones IP específicas para las computadoras a las que están asignadas actualmente. (De lo contrario, las IP pueden cambiar de vez en cuando).

AmanicA
fuente
0

Simplemente puede asignar asignar nombre de proceso a la máquina de su hijo.
Entonces simplemente hazlo,
ssh MachineName

Nunca usé esto, solo un pensamiento en mi cabeza que compartí.

Gaurav Gandhi
fuente