SSH para RPi sem uma conexão de rede?


36

É possível SSHacessar um RPi sem uma conexão de rede?

Eu poderia imaginar que você poderia fazê-lo usando um cabo LAN do computador para o RPi ou talvez usando um cabo USB.

Na verdade, eu tenho acesso a uma rede, no entanto, ele não permite conexões de entrada (mesmo de IPs locais) para nenhuma porta, exceto 80 e 443, eu imaginaria.


3
Basta usar um cabo cruzado, acho que essa é a solução que você precisa;). Conecte todos os cabos no cabo UTP desta maneira: numitechsolutions.com/wp-content/uploads/2012/01/… e conecte-o ao seu PI e PC. Dê a eles um IP, pronto;).
Laurence

Sobre o processo connectiong, há um ótimo artigo: Conexões remotas do Raspberry Pi - sem rede! . Explica a configuração dos laptops Mac e Windows.
Tomáš Zato - Restabelecer Monica

1
Com os modernos adaptadores Ethernet, o crossover não é mais necessário. Em uma caixa do Windows, basta 'compartilhar' sua conexão de rede WIFI (propriedades do adaptador aberto, compartilhamento) com a sua LAN. O RPI obterá o endereço IP a partir daí. Isso lhe dará acesso SSH da caixa do Windows ao seu RPi, mas não acesso externo.
Fcm3

Como os comentários do fcm, os cabos cruzados são principalmente coisa do passado agora ; interfaces ethernet contemporâneas, incluindo as do pi, se cruzam fisicamente quando conectadas.
goldilocks

Eu também fiquei com esse problema e agora posso fazer isso. Então, eu preciso compartilhar minha solução. Você pode ver como este link, topboxbox.blogspot.com/2017/11/…
TopBoxBox 18/17

Respostas:


6

Sem roteador + sem tela + cabo Ethernet normal + RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10

Primeiro, devemos ativar o servidor SSH no Pi, que está desativado por padrão por segurança.

Se você já possui um shell no Pi por um método não SSH, como tela + teclado ou UART (veja abaixo), basta executar:

sudo systemctl enable ssh
sudo service sshd start

conforme explicado em: SSH não está funcionando com a instalação nova Isso persiste nas inicializações.

Caso contrário, insira o cartão SD no seu host e crie um arquivo vazio mágico chamado sshfile na boot/partição.

Nos hosts Ubuntu, ele é montado automaticamente e você pode fazer exatamente:

sudo touch /media/$USER/boot/ssh

com o qual você pode confirmar:

lsblk

que contém:

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

Se você não ativar o daemon SSHD no Pi, a conexão SSH falhará com:

ssh: connect to host 10.42.0.160 port 22: Connection refused

quando tentamos mais tarde.

Depois de ativar o servidor SSH

Em seguida, inicialize o Pi e conecte um cabo Ethernet do seu laptop diretamente ao Pi:

insira a descrição da imagem aqui

No Ubuntu 17.04, para solucionar esse bug, conforme mencionado nesta resposta, você primeiro precisa:

sudo apt-get install dnsmasq-base

No host, abra o gerenciador de rede:

nm-connection-editor

E ir:

  1. + assinar (Adicionar uma nova conexão)
  2. Ethernet
  3. Crio
  4. Configurações IPv4
  5. Método: Compartilhado com outros computadores
  6. Defina um bom nome para ele
  7. Salve 

insira a descrição da imagem aqui

Encontre o IP do Pi no host:

cat /var/lib/misc/dnsmasq.leases

produz 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 é o IP, como sempre:

ssh pi@10.42.0.160

Eu também tenho o seguinte no meu .bashrc:

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

De dentro do Pi, observe que ele pode acessar a Internet normalmente através de outras interfaces do seu host:

ping google.com

Por exemplo, no meu laptop, o Pi ocupa a Ethernet, mas o host também está conectado à Internet por Wi-Fi.

O cabo cruzado não é necessário se a placa de rede host suportar Auto MDI-X . É o caso do hardware mais recente, incluindo, por exemplo, o Lenovo T430 2012 que eu testei, que possui uma "Conexão de rede Gigabit Intel® 82579LM" que documenta o suporte ao Auto MDI-X .

Agora você também pode:

Conversor USB serial UART

Esta é uma alternativa ao SSH se você deseja obter um shell no Pi: https://en.wikipedia.org/wiki/Serial_port

Isso não usa o SSH ou a própria rede, mas a interface serial mais antiga, mais simples, mais direta, mais confiável, menor largura de banda e menor distância. O Pi não terá acesso à Internet com esse método.

Os computadores de mesa ainda têm uma porta serial na qual você pode conectar fio a fio com o Pi, mas estes estão ocultos na maioria dos laptops e, portanto, precisamos comprar um adaptador USB barato. Aqui eu usei: https://www.amazon.co.uk/gp/product/B072K3Z3TL Veja também: https://unix.stackexchange.com/questions/307390/what-is-the-difference-between- ttys0-ttyusb0-e-ttyama0-em-linux / 367882 # 367882

Primeiro conecte o cartão SD no host e edite o config.txtarquivo presente na primeira partição para adicionar:

enable_uart=1

conforme explicado em: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195

Esta primeira partição contém o carregador de inicialização, seus arquivos de configuração e o kernel (Linux / your), config.txtsendo um deles. A segunda partição contém o sistema de arquivos raiz Linux real.

Agora conecte seu computador ao Pi como:

insira a descrição da imagem aqui

Você só precisa conectar 3 cabos:

  • Terra a Terra
  • Tx em Pi para Rx na porta USB para serial
  • Rx em Pi para Tx em porta USB para serial tye

Isso também está documentado em: https://www.raspberrypi.org/documentation/usage/gpio/README.md

Cuidado para não ligar o terra aos 5V, já queimei 2 UART em chips USB ao fazer isso!

Você não precisa conectar o 5V ao 5V. Eu acho que você pode alimentar seu Pi dessa maneira, mas eu li que isso é uma péssima idéia, basta usar a fonte de alimentação USB usual.

Por fim, conecte o lado USB do conector ao computador host e obtenha um shell com:

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

Saia com Ctrl-A \.

Aqui está um vídeo de Adafruit mostrando: https://www.youtube.com/watch?v=zUBPeoLW16Q

Veja também

Pergunta semelhante no Stack Overflow: https://stackoverflow.com/questions/16040128/hook-up-raspberry-pi-via-ethernet-to-laptop-without-router


Você não deve repetir sempre a mesma resposta . Em vez disso, faça um comentário com um link para sua primeira resposta ou, no máximo, faça uma nova resposta com um aspecto diferente e um link para a primeira resposta como referência.
Ingo

@ Ingo Acredito que esta resposta seja a melhor até agora para ambas as perguntas. Se você acha que não respondi às perguntas, informe-me como. Um comentário simplesmente desaparecerá no mar de comentários e outros repetirão o mesmo conteúdo com uma redação diferente.
Ciro Santilli

2

Você pode fazer isso facilmente conectando seu pi ao laptop via cabo LAN. Certifique-se de que (na lista enquanto estiver fazendo isso pela primeira vez) você tenha o servidor dhcp trabalhando no seu laptop e ouvindo na interface LAN que você está usando para se conectar ao pi. De alguma forma, você precisa atribuir um endereço à framboesa.


Você não precisa de dhcp.
Laurence

1
Se você possui um IP configurado estaticamente, não precisa. Caso contrário, você precisa de algo para fornecer um endereço IP.
Coddarrior 7/12/12


1

O problema é que você deseja conectar 2 dispositivos do mesmo tipo. Mas ainda é possível. Você pode usar um cabo Crossover para isso (método 1) ou um switch ou hub para fazer automaticamente uma conexão crossover (método 2). Ou apenas use um roteador simples (método 3).

Tornar possível uma conexão

Método 1:

Use um cabo Crossover e conecte seu PC e PI:

Um cabo cruzado Ethernet é um tipo de cabo Ethernet usado para conectar diretamente os dispositivos de computação. Os cabos normais diretos ou de conexão foram usados ​​para conectar um controlador de interface de rede host (um computador ou dispositivo similar) a um comutador, hub ou roteador de rede. Um cabo com conexões "cruzadas" foi usado para conectar dois dispositivos do mesmo tipo: dois hosts ou dois comutadores entre si. Devido à inclusão do recurso Auto-MDIX.

Você precisa conectar os cabos no cabo UTP desta forma: http://www.incentre.net/wp-content/uploads/2015/02/ethcablerj45cr.gif

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

Método2:

Você também pode usar um moderno cabo Ethernet de par trançado para conectar-se ao seu PI. Mas você precisa de um hub ou switch para isso:

as conexões podem ser feitas com um cabo direto por meio de uma porta MDI-X, também conhecida como conexão "crossover interno" ou "crossover incorporado". As portas de hub e switch com crossovers internos geralmente são rotuladas como tal, com "uplink" ou "X". Por exemplo, a 3Com geralmente rotula suas portas 1X, 2X e assim por diante. Em alguns casos, é fornecido um botão para permitir que uma porta atue como uma porta normal ou de ligação ascendente.

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

Mais Informações:

Introduzido em 1998, isso tornou obsoleta a distinção entre portas normais e uplink e switches seletores manuais em hubs e switches mais antigos. Se um ou os dois dispositivos conectados tiverem o recurso de configuração automática MDI / MDI-X, não haverá necessidade de cabos cruzados. Embora o Auto-MDIX tenha sido especificado como um recurso opcional no padrão 1000BASE-T, na prática ele é amplamente implementado na maioria das interfaces. Além do MDI / MDI-X automático eventualmente acordado, esse recurso também pode ser referido por vários termos específicos do fornecedor, incluindo: ligação e troca automática, reconhecimento universal de cabos e detecção automática.

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

Método 3

Use um roteador e conecte o PI e o PC ao roteador.

Faça a conexão

Dê a eles um IP no mesmo intervalo, por exemplo:

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

Você pode encontrar aqui como fazer isso: http://www.cyberciti.biz/faq/linux-configure-a-static-ip-address-tutorial/

Ativar SSH

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

Conecte-se ao PI

No Windows, use, por exemplo, Putty .

Outro método:

Você também pode procurar aqui: http://www.linux-usb.org/usbnet/


Como o método 2 funciona? Não preciso de uma conexão de rede ativa no meu computador?
Tyilo

Eu não terminei aquela parte do jato. Me dê 1 segundo.
Laurence

4
Eu pensei que o tempo em que as pessoas tivessem que usar cabos crossover desaparecesse para sempre :) Agora, toda e qualquer nova placa Ethernet é capaz de atravessar sem a necessidade de ter um cabo crossover.
Coddarrior 08/12/12

Você nunca sabe que tipo de PC ele possui; além disso, você sempre pode tentar um cabo UTP.
Laurence

Os cabos Ethernet retos normais funcionam no PI 2, leia em algum lugar que sua interface possa reconhecer isso. Acabei de testar no Ubuntu 16.04, RPI 2 Raspbian 2016.05.
Ciro Santilli publicou 22/08/16
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.