SSH a RPi sin una conexión de red?

36

¿Es posible SSHingresar a un RPi sin una conexión de red?

Me imagino que podrías hacerlo usando un cable LAN de la computadora al RPi o tal vez usando un cable USB.

De hecho, tengo acceso a una red, sin embargo, no permite conexiones entrantes (incluso desde IP locales) a ningún puerto, excepto 80 y 443, me imagino.

Tyilo
fuente
3
Simplemente use un cable cruzado, supongo que esa es la solución que necesita;). Conecte todos los cables en el cable UTP de esta manera: numitechsolutions.com/wp-content/uploads/2012/01/… luego conéctelo con su PI y PC. Darles una IP, hecho;).
Laurence
Con respecto al proceso de conexión, hay un gran artículo: Conexiones remotas de Raspberry Pi: ¡sin una red! . Explica la configuración del portátil Mac y Windows.
Tomáš Zato - Restablece a Mónica el
1
Con los adaptadores Ethernet modernos, ya no se necesita el crossover. En un cuadro de Windows, simplemente "comparta" su conexión de red WIFI (abra las propiedades del adaptador, comparta) con su LAN. El RPI obtendrá la dirección IP desde allí. Esto le dará acceso SSH desde el cuadro de Windows a su RPi pero no acceso externo.
fcm
Como comenta fcm, los cables cruzados ahora son en su mayoría una cosa del pasado ; Las interfaces de Ethernet contemporáneas, incluidas las del pi, se cruzarán físicamente cuando estén conectadas.
Ricitos de oro
También me quedé con este problema y ahora puedo hacerlo. Entonces necesito compartir mi solución. Puede ver este enlace, topboxbox.blogspot.com/2017/11/…
TopBoxBox

Respuestas:

6

Sin enrutador + sin pantalla + cable Ethernet normal + RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10

Primero debemos habilitar el servidor SSH en el Pi, que está deshabilitado de forma predeterminada por seguridad.

Si ya tiene un shell en el Pi a través de un método que no sea SSH, como pantalla + teclado o UART (consulte a continuación), simplemente ejecute:

sudo systemctl enable ssh
sudo service sshd start

como se explica en: SSH no funciona con una instalación nueva Esto persiste a través de las botas.

De lo contrario, inserte la tarjeta SD en su host y cree un archivo vacío mágico llamado ssharchivo en la boot/partición.

En los hosts Ubuntu, se monta automáticamente y puede hacer simplemente:

sudo touch /media/$USER/boot/ssh

que puedes confirmar con:

lsblk

que contiene:

mmcblk0     179:0    0  14.4G  0 disk
├─mmcblk0p1 179:1    0  43.9M  0 part /media/ciro/boot
└─mmcblk0p2 179:2    0  14.4G  0 part /media/ciro/rootfs

Si no habilita el demonio SSHD en el Pi, la conexión SSH fallará con:

ssh: connect to host 10.42.0.160 port 22: Connection refused

cuando lo intentemos más tarde.

Después de habilitar el servidor SSH

A continuación, inicie el Pi y conecte un cable Ethernet desde su computadora portátil directamente al Pi:

ingrese la descripción de la imagen aquí

En Ubuntu 17.04 para solucionar este error como se menciona en esta respuesta , primero necesita:

sudo apt-get install dnsmasq-base

En el host, abra el administrador de red:

nm-connection-editor

Y ve:

  1. + firmar (Agregar una nueva conexión)
  2. Ethernet
  3. Crear
  4. Configuraciones IPv4
  5. Método: compartido con otras computadoras
  6. Ponle un buen nombre
  7. Salvar

ingrese la descripción de la imagen aquí

Encuentre la IP de Pi en el host:

cat /var/lib/misc/dnsmasq.leases

produce algo como:

1532204957 b8:27:eb:0c:1f:69 10.42.0.160 raspberrypi 01:b8:27:eb:0c:1f:69

10.42.0.160 es la IP, entonces como siempre:

ssh [email protected]

También tengo lo siguiente en mi .bashrc:

piip() ( cat /var/lib/misc/dnsmasq.leases | cut -d ' ' -f 3; )
pissh() ( sshpass -p raspberry ssh "pi@$(piip)"; )

Desde el interior del Pi, tenga en cuenta que puede acceder a Internet normalmente a través de otras interfaces de su host:

ping google.com

Por ejemplo, en mi computadora portátil, el Pi toma Ethernet, pero el host también está conectado a Internet a través de WiFi.

El cable cruzado no es necesario si la tarjeta de red del host admite Auto MDI-X . Este es el caso del hardware más reciente, incluido, por ejemplo, el Lenovo T430 2012 con el que probé, que tiene una "Conexión de red Intel® 82579LM Gigabit" que documenta el soporte para Auto MDI-X .

Ahora también puedes:

Convertidor USB serie UART

Esta es una alternativa a SSH si solo desea obtener un shell en Pi: https://en.wikipedia.org/wiki/Serial_port

Esto no usa SSH o la red en sí, sino más bien la interfaz serial más antigua, más simple, más directa, más confiable, de menor ancho de banda y de menor distancia. El Pi no tendrá acceso a Internet con este método.

Las computadoras de escritorio todavía tienen un puerto serie que puede conectar directamente cable a cable con el Pi, pero estos están ocultos en la mayoría de las computadoras portátiles, por lo que necesitamos comprar un adaptador USB barato. Aquí he usado: https://www.amazon.co.uk/gp/product/B072K3Z3TL Ver también: https://unix.stackexchange.com/questions/307390/what-is-the-difference-between- ttys0-ttyusb0-and-ttyama0-in-linux / 367882 # 367882

Primero conecte la tarjeta SD al host y edite el config.txtarchivo presente en la primera partición para agregar:

enable_uart=1

como se explica en: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195

Esta primera partición contiene el gestor de arranque, sus archivos de configuración y el kernel (Linux / your), config.txtsiendo uno de ellos. La segunda partición contiene el sistema de archivos raíz de Linux real.

Ahora conecte su computadora a la Pi como:

ingrese la descripción de la imagen aquí

Solo necesita conectar 3 cables:

  • Tierra a tierra
  • Tx en Pi a Rx en el puerto USB a serie
  • Rx en Pi a Tx en tye USB a puerto serie

Esto también está documentado en: https://www.raspberrypi.org/documentation/usage/gpio/README.md

Tenga cuidado de no vincular el suelo a los 5V, ¡ya he quemado 2 chips UART a USB al hacerlo!

No necesita conectar el 5V al 5V en absoluto. Creo que puedes alimentar tu Pi así, pero he leído que es una mala idea, solo usa la fuente de alimentación USB habitual.

Finalmente, conecte el lado USB del conector a su computadora host y obtenga un shell con:

sudo apt install screen
sudo usermod -a -G dialout $USER
screen /dev/ttyUSB0 115200

Salir con Ctrl-A \.

Aquí hay un video de Adafruit que lo muestra: https://www.youtube.com/watch?v=zUBPeoLW16Q

Ver también

Pregunta similar sobre Stack Overflow: https://stackoverflow.com/questions/16040128/hook-up-raspberry-pi-via-ethernet-to-laptop-without-router

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
fuente
No debes repetir siempre la misma respuesta . En su lugar, haga un comentario con un enlace a su primera respuesta o, como máximo, haga una nueva respuesta con un aspecto diferente y un enlace a la primera respuesta como referencia.
Ingo
@Ingo Creo que esta respuesta es la mejor hasta ahora para ambas preguntas. Si cree que no he respondido alguna de las preguntas, hágamelo saber cómo. Un comentario simplemente desaparecerá en el mar de comentarios, y luego otros repetirán el mismo contenido con una redacción diferente.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
2

Puede hacerlo fácilmente conectando su pi a la computadora portátil a través del cable LAN. Asegúrese de que (en la lista mientras lo hace por primera vez) tenga un servidor dhcp trabajando en su computadora portátil y escuchando en la interfaz LAN que está utilizando para conectarse con pi. Necesita de alguna manera asignar dirección a frambuesa.

codewarrior
fuente
No necesitas dhcp.
Laurence
1
Si tiene IP configurada estáticamente, no tiene que hacerlo. Si no, necesita algo para darle una dirección IP.
codewarrior
2

Para mí, la forma más conveniente es usar USB Tethering en mi dispositivo Android, conectarlo a la frambuesa y luego SSH desde mi teléfono a la frambuesa.

ver esta publicación SSH de Android a rPI usando USB?

philx_x
fuente
1

El problema es que desea conectar 2 dispositivos del mismo tipo. Pero aún es posible. Puede usar un cable cruzado para esto (Método 1), o puede usar un interruptor o concentrador para realizar automáticamente una conexión cruzada (Método 2). O simplemente use un enrutador simple (Método 3).

Haz una conexión posible

Método 1:

Use un cable cruzado y conecte su PC y PI:

Un cable cruzado Ethernet es un tipo de cable Ethernet utilizado para conectar dispositivos informáticos directamente directamente. Se utilizaron cables directos o de conexión normal para conectarse desde un controlador de interfaz de red host (una computadora o dispositivo similar) a un conmutador de red, concentrador o enrutador. Se usó un cable con conexiones que se "cruzan" para conectar dos dispositivos del mismo tipo: dos hosts o dos conmutadores entre sí. Debido a la inclusión de la capacidad Auto-MDIX.

Debe conectar los cables en el cable UTP de esta manera: http://www.incentre.net/wp-content/uploads/2015/02/ethcablerj45cr.gif

Fuente: http://en.wikipedia.org/wiki/Ethernet_crossover_cable

Método2:

También puede usar un cable Ethernet moderno de par trenzado para conectarse a su PI. Pero necesita un concentrador o conmutador para esto:

Las conexiones se pueden hacer con un cable directo a través de un puerto MDI-X, también conocido como conexión de "cruce interno" o de "cruce integrado". Los puertos de concentrador y conmutador con tales cruces internos suelen estar etiquetados como tales, con "enlace ascendente" o "X". Por ejemplo, 3Com generalmente etiqueta sus puertos 1X, 2X, etc. En algunos casos, se proporciona un botón para permitir que un puerto actúe como puerto normal o de enlace ascendente.

Fuente: http://en.wikipedia.org/wiki/Ethernet_over_twisted_pair

Más información:

Introducido en 1998, esto hizo que la distinción entre el enlace ascendente y los puertos normales y los conmutadores selectores manuales en los hubs y conmutadores más antiguos quedara obsoleta. Si uno o ambos dispositivos conectados tienen la función de configuración automática MDI / MDI-X, no hay necesidad de cables cruzados. Aunque Auto-MDIX se especificó como una característica opcional en el estándar 1000BASE-T, en la práctica se implementa ampliamente en la mayoría de las interfaces. Además del MDI / MDI-X automático finalmente acordado, esta característica también puede ser mencionada por varios términos específicos del proveedor, que incluyen: Enlace automático ascendente y comercio, Reconocimiento universal de cables y Detección automática.

Fuente: http://en.wikipedia.org/wiki/Ethernet_crossover_cable

Método 3

Use un enrutador y conecte el PI y la PC al enrutador.

Hacer la conexión

Proporcione a ambos una IP en el mismo rango, por ejemplo:

PC: 192.168.1.10 Subnet: 255.255.255.0
PI: 192.168.1.11 Subnet: 255.255.255.0

Puede encontrar aquí cómo hacerlo: http://www.cyberciti.biz/faq/linux-configure-a-static-ip-address-tutorial/

Habilitar SSH

http://steve.dynedge.co.uk/2012/05/29/enabling-ssh-on-debian-raspberry-pi/

Conéctese al PI

En Windows use por ejemplo Putty .

Otro método:

También puede mirar aquí: http://www.linux-usb.org/usbnet/

Laurence
fuente
¿Cómo funciona el método 2? ¿No necesito una conexión de red activa en mi computadora?
Tyilo
No terminé esa parte del jet. Dame 1 segundo
Laurence
44
Pensé que el tiempo en que la gente tenía que usar cables cruzados se había ido para siempre :) En este momento, todas y cada una de las nuevas tarjetas de Ethernet pueden cruzar sin necesidad de tener un cable cruzado.
codewarrior
Nunca sabes qué tipo de PC tiene, además de eso, siempre puedes probar un cable UTP.
Laurence
Los cables Ethernet rectos normales funcionan en PI 2, lea en alguna parte que su interfaz puede reconocer eso. Acabo de probar en Ubuntu 16.04, RPI 2 Raspbian 2016.05.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件