Configurar SSH por internet en mi Pi

16

Esta podría ser una pregunta simple, pero como he leído información contradictoria de varios recursos (¿qué? ¿Contradicciones en Internet?), Quería saber si hice todo lo que se suponía que debía hacer.

Entonces, quiero configurar una conexión SSH a mi RasPi para poder acceder a través de Internet.

  1. Comencé activando SSH en el Pi, ejecutando Raspbian, usando la raspi-configherramienta.
  2. Luego, instalé el cliente no-ip.com en mi Pi para tener un nombre de host que apuntara a mi dirección IP dinámica.
  3. Busqué mi IP de LAN en mi frambuesa usando ifconfig
  4. Finalmente, en la utilidad de configuración de mi enrutador, bajo el reenvío de puertos, habilité el reenvío del puerto 22 en TCP y UDP a la ip local de mi pi.

Después de esto, parece que no puedo enviar SSH a mi pi a través de Internet. Funciona cuando intento conectarme dentro de mi LAN usando mi IP local, pero no usando mi nombre de host o dirección IP de Internet. También intenté conectarme desde una ubicación diferente y nada funciona.

Mi pregunta: ¿Me faltan algunos pasos? ¿Hay archivos de configuración que debería editar en mi pi para que todo funcione?

Zeta
fuente
Incluya la salida de iptables -Len su Pi.
deed02392
1
¿Ya resolvió este problema? Si es así, ¿podría marcar la respuesta que la resolvió o crear una respuesta propia que indique lo que hizo y luego marcarla como respuesta? Eso sería genial, ya que estamos tratando de hacer que el sitio Q: A aumente la relación y esta pregunta parece haber sido dejada por un tiempo sin ser tocada por usted @Zeta. ¡Gracias!
RPiAwesomeness
Estoy usando no-ip.com para conectarme a mi Pi a través de Internet para web y ssh, por lo que es posible, ¿tal vez su enrutador o ISP está bloqueando el tráfico entrante?
Alastair Montgomery
Esto suena muy parecido a un enrutador que no admite NAT loopback.
Flakeshake
Encontré este enlace: raspberryanywhere.com Quizás pueda ser de alguna ayuda. ¡He estado usando el servicio desde hace varias semanas y funciona muy bien! El enlace proporciona un visor de equipo de software simple para acceder a su tablero de frambuesa desde cualquier lugar. Además, puede usar su cliente SSH habitual; solo proporcionan una dirección virtual para conectarse a su placa a través de SSH o HTTP. Vale la pena intentarlo seguro!
Stefano Stefano

Respuestas:

12

Si solo planea conectarse a su Raspberry Pi a través de SSH a través de Internet, probablemente ngrok.com pueda satisfacer su problema de la manera más cómoda.

Reenvía su (s) puerto (s) con algún tipo de túnel invertido e incluso puede ayudar a evitar los firewalls o las restricciones de su ISP. Debe registrarse (de forma gratuita) en el sitio para reenviar el tráfico TCP.

No estoy afiliado a este proyecto de ninguna manera; Simplemente lo usé para lograr la misma idea (en mi caso, reenviar un servidor OpenVPN) y hasta ahora no encontré ningún problema.

Slubbix
fuente
También tuve este problema y usé serveo.net incluso más fácil que ngrok. Totalmente gratis, 0 config simplemente pegue el comando de 22 puertos con un alias personalizado y luego conéctese.
Madhava Jay
3

Parte de su problema podría ser que debido a que el Pi está utilizando una IP dinámica del DHCP en su enrutador, el reenvío de puertos que configuró no funciona, ya que la IP local del Pi ha cambiado.

La forma más sencilla de solucionar esto (al menos eso he visto) es configurar una IP estática. Es relativamente simple, siempre y cuando no te importe jugar en un archivo de configuración. Puedes leer un poco más en profundidad aquí y aquí . También explicaré la manera simple a continuación:

  1. Conéctese a su Pi ya sea a través de SSH dentro de su red doméstica o mediante una pantalla, ya sea que funcione.

  2. Tome un bolígrafo y un poco de papel, va a escribir información.

  3. Ejecutar el comando ifconfig. Sé que ya lo ejecutó, pero esta vez necesitamos recopilar un poco más de información que su IP local. Esto revela la información de su enrutador, el bit que desea es después de eth0 (la conexión ethernet). . . .

    eth0      Link encap:Ethernet  HWaddr b8:27:eb:b3:fc:2c
              inet addr:192.168.1.81  Bcast:192.168.1.255  Mask:255.255.255.0
    

    Escriba la siguiente información ...

    inet addr – 192.168.1.81 (Pi's Current IP Address)
    Bcast –  192.168.1.255 (The Broadcast IP Range)
    Mask –  255.255.255.0 (Subnet Mask Address)
    

    Obviamente, su información será diferente de este tutorial, así que asegúrese de usar su información desde el ifconfigcomando ejecutado en el Pi.

  4. Ahora corre netstat -nro route -n. Nosotros necesitamos:

    Dirección 'Gateway' - 192.168.1.254 Dirección
    'Destino' - 192.168.1.0

  5. Ahora que tenemos esa información, podemos editar el archivo de interfaces para configurar la IP dinámica. Ejecutar sudo nano /etc/network/interfaces. Debería verse algo así:

    archivo de interfaces

  6. Cambia la linea:

    iface eth0 inet dhcp
    

    a

    iface eth0 inet static
    

    Luego, directamente debajo de esta línea, ingrese lo siguiente ( Tenga en cuenta. Necesitará sus propias direcciones que reunimos anteriormente ). . . .

    address 192.168.1.81
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.254
    

    Básicamente, la parte de la dirección es lo que quieres que sea tu IP. Más alto es mejor, ya que hay menos posibilidades de conflictos de IP. netmask: la dirección de 'Máscara' que escribimos anteriormente.

    red : la dirección IP del enrutador, esta es la dirección de 'Destino' que se encontró anteriormente. También puede tomar esto de su enrutador, debería decir en algún lado.

    broadcast - La dirección 'Bcast' que escribimos anteriormente.

    gateway : esta es la dirección de 'Gateway' que encontramos anteriormente.

    Presione Ctrl+ Oy o Entero Yy luego Enter. Una vez que hayas hecho eso, presiona Ctrl+ X.

  7. ¡Corre sudo rebooty tu IP debería estar en su lugar! Vuelva a iniciar sesión y ejecute el ifconfigcomando nuevamente, y debería verse así ahora:

    fantasía!

Luego configure su reenvío de puertos a su nueva IP estática, ¡y todo debería funcionar! ¡La mejor de las suertes!

RPiAwesomeness
fuente
2
¿Podría la persona que votó en contra explicar por qué? Creo que esta es una solución perfectamente válida y viable. Me gustaría saber por qué para poder mejorar mi respuesta.
RPiAwesomeness
1
Esto solo funcionará en la red local y no desde el exterior. OP preguntó cómo conectarse a Pi a través de Internet y no desde la misma red.
Chinmay Sarupria
Una dirección como 192.168.1.100 es una dirección local, podría tener 2 Pi en 2 partes diferentes de la ciudad con la misma dirección local. Por supuesto, no podré acceder a ninguno de ellos desde fuera de la red.
Chinmay Sarupria
Si le da a su RPi una dirección IP estática, debe excluirla del grupo DHCP, de lo contrario, otro dispositivo en su red podría obtenerla y tendrá un conflicto de IP.
Dmitry Grigoryev
2

Lo único que parece estar mal configurado es que SSH es un protocolo solo TCP, por lo que no necesita reenviar tráfico UDP en el puerto 22.

Ahora, por qué no parece funcionar es probablemente porque su enrutador no admite NAT loopback . Lo que significa es que las reglas NAT (como la de reenvío) no se aplican cuando el origen de la conexión proviene de su LAN interna. No todos los enrutadores tienen esta función activada. Por lo tanto, si su enrutador no es compatible con NAT loopback, no podrá conectarse a su RPi utilizando SSH cuando utilice el nombre de dominio no-ip.com y cuando lo haga desde su LAN .

Para probar si su configuración funciona, si tiene un teléfono inteligente con alguna conexión de datos (3G, LTE, etc.) y tiene un cliente ssh, intente conectarse a su RPi utilizando el plan de datos y no su conexión WiFi. Si no tiene un cliente ssh en él y se le permite hacer anclaje, entonces use su teléfono inteligente junto con una de su computadora desenchúfelo para su red local y utilice el enlace de anclaje.

Huygens
fuente
0

Intente usar un nombre de dominio gratuito, por ejemplo, co.cc o similar, y freeDNS (también proporcionan una amplia gama de subdominios) para apuntar a su enrutador. Creo que también puede obtener un script de actualización en caso de que su enrutador tenga una IP dinámica.

Si eso no funciona, ¿quizás la configuración para el reenvío de puertos sea incorrecta? ¿Qué clase de router tienes?

Samadi
fuente
Try using a free domain name...Lo hizo, eso es lo que es el cliente sin IP. Es mucho más simple que tener que meterse con DNSing y enrutadores manuales.
RPiAwesomeness
@RPiAwesomeness Lo siento, no lo sabía.
Samadi
No hay problema. Solo estaba cumpliendo con mi deber de ser miembro de Stack Exchange y moderar el sitio. Es solo un poco de crítica útil. No lo tome como un asalto a usted, solo estoy tratando de ayudar a que el contenido de este sitio sea útil e informativo. Continúe tratando de ayudar y responder preguntas y participe, comenzará a obtenerlo. :) Además, entra en el chat de vez en cuando. A las personas que están en su mundo les encanta tener compañía, y demuestra que este sitio es útil y próspero y tiene una buena base de usuarios involucrados.
RPiAwesomeness
0

Tengo esta situación aquí en Finlandia: rpi está conectado a un enrutador wifi móvil, huawei e5776, y quiero conectarme a rpi con SSH a través de internet, sin éxito hasta ahora y finalmente sé que es mi proveedor de servicios de Internet que bloquea las conexiones bidireccionales para clientes de banda ancha móvil. El tráfico bidireccional para ellos es un servicio adicional (que debe pagar) llamado puerta abierta por mi ISP. Así que dirígete a tu propio sitio de ISP para ver si ese es el caso.

toomanyhours
fuente
0

Slubbix señaló un posible problema de que la dirección IP local de Raspberry Pi no es fija. Esto haría que el puerto hacia adelante en su enrutador no sea confiable. Por defecto, la Raspberry Pi está configurada para usar DHCP. Esto significa que la dirección IP la proporciona el enrutador. Esta IP también es por defecto no fija.

Slubbix ya ha indicado una solución a este problema : hacer que la IP de Raspberry Pi sea fija.

En mi opinión, esto tiene dos desventajas: no hay una lista global de IP en su red que se pueda mantener fácilmente y no puede usar su Raspberry Pi en otra red (IP ya en uso o submáscara diferente).

Por lo tanto, propongo hacer lo siguiente: configurar su enrutador para asignar una IP fija a la dirección MAC de su Raspberry Pi. La dirección MAC se puede encontrar usando el comandoifconfig

Wouter van der Put
fuente
0

La dirección IP local de su Raspberry Pi no es fija, a menos que esté utilizando un adaptador inalámbrico para conectarse, que mantendrá su dirección IP. Si desea usar SSH para el RPI, puede seguir estos pasos:

Inicie su Pi en el indicador de terminal. Escriba el siguiente comando "sudo apt-get install xrdp" Si se promociona, ingrese su contraseña (el valor predeterminado es "frambuesa") Escriba "Y" y presione Intro. Ahora está instalando xrdp en su Pi, que es el software que vamos a utilizar para la conexión de escritorio remoto. Espera a que se complete. Reinicia tu Pi. Vamos a comprobar que xrdp se iniciará automáticamente. Cuando su Pi se haya iniciado en el símbolo del sistema, busque [ok] Iniciando el servidor de Protocolo de escritorio remoto: xrdp sesman. Esto le muestra que xrdp está instalado y se inicia automáticamente al iniciar su Pi. El último paso es tomar nota de la dirección IP de su Pi, que también debe mostrarse en la pantalla de inicio. En mi caso a continuación es 192.168.1.9.

Segunda configuración de la máquina

  1. Inicie Remote Desktop Connection que se puede encontrar en Inicio-> Todos los programas-> Accesorios-> Remote Desktop Connection
  2. Escriba la dirección IP para su Pi que anotó anteriormente.

  3. Haga clic en Conectar (puede recibir una advertencia de seguridad en esta etapa, simplemente haga clic en Aceptar si lo hace. Después de todo, es su Pi en su red, por lo que no debe preocuparse por la seguridad).

  4. Deje el Módulo en el valor predeterminado de sesman-Xvnc e ingrese su nombre de usuario y contraseña para su Pi. (El valor predeterminado es pi y frambuesa si no los ha cambiado).

  5. Haga clic en Aceptar y después de unos momentos debería ser recibido en el escritorio de su Raspberry Pi

  6. Cuando haya terminado, simplemente cierre la sesión desde el escritorio de Pi.

Encontré estos pasos desde aquí y funcionaron para mí.

Aquí hay otra forma de usar SSH:

SSH en Raspberry Pi Generalmente inicio sesión en mi Raspberry Pi a través de SSH o Secure Shell para darle su nombre completo. Esto permite el acceso a la línea de comandos, a su Raspberry Pi, desde otra computadora. Aunque es posible ingresar SSH a Raspberry Pi desde cualquier parte del mundo, y lo hago, esta publicación solo cubre el acceso SSH a través de la red local. Cubriré la conexión remota en una futura publicación de blog.

Aunque esto no da acceso a una GUI (interfaz gráfica de usuario), tener acceso a la línea de comando generalmente me permite hacer el 95% de lo que necesito hacer. El otro 5% probablemente podría hacerlo a través de SSH, pero a veces no se puede superar la comodidad de una GUI. :-)

En primer lugar, debe conocer la dirección IP de la Raspberry Pi en la que desea iniciar sesión. Si no está seguro de cómo encontrar esto, lea mi publicación de blog explicando cómo puede hacerlo de forma remota utilizando una excelente herramienta llamada nmap.

Para SSH en su Raspberry Pi desde una computadora Linux o Apple Mac, esto es muy fácil. Simplemente puede escribir su nombre de usuario y dirección IP en la línea de comando usando el siguiente formato:

ssh username @ IPaddress

Asegúrese de sustituir el nombre de usuario con el nombre de usuario con el que desea iniciar sesión en la computadora remota. La dirección IP debe tomar el formato 192.168.1.66

Es posible que reciba un mensaje explicando que no se puede establecer la autenticidad del host y si está seguro de que desea continuar conectándose. Solo verá este mensaje la primera vez que ingrese SSH en su Raspberry Pi. Simplemente escriba yes.

Luego se le pedirá su contraseña, ingrese la contraseña para el nombre de usuario con el que está tratando de conectarse.

Para Windows esto es un poco más complicado de configurar, ya que requiere un software adicional llamado PuTTY. Sin embargo, una vez instalado, es realmente fácil de usar.

Primero vaya al sitio web de PuTTY, www.putty.org, descargue e instale el software.

Una vez instalado, cargue PuTTY

En Nombre del host (o dirección IP) escriba la dirección IP a la que desea conectarse. Seleccione el botón de radio SSH. En el cuadro debajo de Sesiones guardadas, escriba un nombre para identificar esta computadora, como Raspberry Pi, y luego haga clic en Guardar. Al hacer clic en Abrir ahora debería comenzar su sesión SSH.

La próxima vez que desee SSH en su Raspberry Pi solo necesita cargar PuTTY, haga clic en la sesión guardada para resaltarla y luego haga clic en Abrir. Una vez que haya ingresado su contraseña, cuando se le solicite, tendrá acceso remoto a su Raspberry Pi.

Encontré estas instrucciones desde aquí

Humano
fuente
No veo cómo estas instrucciones ayudan a acceder al RPi a través de Internet
Dmitry Grigoryev
0

Una cosa que noté para mi Internet es que cuando reenvié mi servidor web e intenté conectarme a él usando mi IP pública, diría que no estaba disponible, pero cuando me conecto a él en mi teléfono o en la red de mi escuela Puedo conectarme a él, también una cosa que puedes intentar hacer es ir a google y escribir "IP" en la barra de búsqueda, copiar la ip que te da y luego ir a google translate y pegar tu ip, y luego haga clic en la dirección IP azul en la ventana derecha, y eso debería mostrarle si ha reenviado exitosamente su servidor web.

Austinthemighty
fuente
0

Para permitir el tráfico entrante en el puerto SSH predeterminado (22), puede decirle a iptables que permita que entre todo el tráfico TCP en ese puerto.

sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT

Volviendo a la lista anterior, puede ver que esto le dice a iptables:

  1. agregue esta regla a la cadena de entrada ( -A INPUT) para que observemos el tráfico entrante
  2. verifique si es TCP ( -p tcp).
  3. si es así, verifique si la entrada va al puerto SSH ( --dport ssh).
  4. si es así, acepte la entrada ( -j ACCEPT).

Esperemos que esto funcione para usted también es posible que desee agregar los puertos FTP que son 20-21, sólo cambia el ssha 20y 21.

Austinthemighty
fuente
0

No estoy seguro de si esta pregunta necesita respuestas adicionales, pero es bastante simple.

  1. Instale OpenSSH o habilítelo desde raspi-config

  2. Ir a la página de inicio de su enrutador / firewall en mi caso 192.168.1.1

  3. Busque el reenvío de puertos o servidores virtuales y agregue algo como lo siguiente:

    Inicio del puerto externo: 1234 Fin del puerto externo: 1234

    Puerto interno de inicio y fin 22.

    La IP del servidor es la IP estática de su RPi en mi caso 192.168.1.50

  4. Una vez que esté todo configurado en el lado del enrutador, tome nota de su IP WAN buscando su IP en Google.

  5. Ahora debería poder SSH a la pi a través de Internet. En mi caso, estoy usando un Chromebook y el complemento de shell seguro. Escribo el nombre de usuario en mi caso pi@mywanipy el puerto 1234.

Básicamente, la regla del firewall en el paso 3 reenvía todo el tráfico en el puerto 1234 de IP de WAN al puerto 22 de IP de LAN interna.

Hani Umer
fuente
-1

Me costó mucho configurar SSH a través de Internet hasta que encontré este método simple:

http://raspctl.com

Simplemente registre y copie y pegue los comandos. Es posible que deba editar un archivo de configuración, pero eso es todo. Lo probé hoy y funciona de maravilla. También lo probé con diferentes aplicaciones de Android SSH.

alkopop79
fuente
Olvidé mencionar: ¡configure el reenvío de puertos en su enrutador!
alkopop79
1
FYI: Ese proyecto parece haber sido descontinuado.
bobstro