Sem roteador + sem tela + cabo Ethernet normal + RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10
Primeiro, devemos habilitar o servidor SSH no Pi, que é desabilitado por padrão para segurança.
Se você já tem um shell no Pi por meio de 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: /raspberrypi/58478/ssh-not-working-with-fresh-install Isso persiste nas inicializações.
Caso contrário, insira o cartão SD em seu host e crie um arquivo vazio mágico chamado ssh
arquivo na boot/
partição.
Em hosts Ubuntu, ele é montado automaticamente e você pode fazer apenas:
sudo touch /media/$USER/boot/ssh
que você pode confirmar com:
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 habilitar 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 habilitar o servidor SSH
Em seguida, inicialize o Pi e conecte um cabo Ethernet do seu laptop diretamente ao Pi:
No Ubuntu 17.04, para contornar esse bug, conforme mencionado nesta resposta, você precisa primeiro:
sudo apt-get install dnsmasq-base
No host, abra o gerenciador de rede:
nm-connection-editor
E ir:
+
assinar (adicionar uma nova conexão)
- Ethernet
- Crio
- Configurações IPv4
- Método: Compartilhado com outros computadores
- Defina um bom nome para isso
- Salve
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, então, como de costume:
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 por meio de outras interfaces do seu host:
ping google.com
Por exemplo, no meu laptop, o Pi assume a Ethernet, mas o host também está conectado à Internet por WiFi.
O cabo crossover não é necessário se a placa de rede do host suportar Auto MDI-X . Este é o caso do hardware mais recente, incluindo, por exemplo, o Lenovo T430 de 2012 com o qual testei, que possui uma "Conexão de rede Gigabit Intel® 82579LM" que documenta suporte para MDI-X automático .
Agora você também pode:
Conversor serial USB UART
Esta é uma alternativa ao SSH se você deseja apenas obter um shell no Pi: https://en.wikipedia.org/wiki/Serial_port
Isso não usa SSH ou rede em si, mas sim a interface serial mais antiga, mais simples, mais direta, mais confiável, largura de banda menor e menor distância. O Pi não terá acesso à Internet com este método.
Os computadores desktop ainda têm uma porta serial que você pode conectar diretamente com fio a fio com o Pi, mas elas estão escondidas na maioria dos laptops, então precisamos comprar um adaptador USB barato. Aqui eu usei: https://www.amazon.co.uk/gp/product/B072K3Z3TL Veja também: /unix/307390/what-is-the-difference-between- ttys0-ttyusb0-and-ttyama0-in-linux / 367882 # 367882
Primeiro, conecte o cartão SD no host e edite o config.txt
arquivo 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 bootloader, seus arquivos de configuração e o kernel (Linux / seu), config.txt
sendo um deles. A segunda partição contém o sistema de arquivos raiz Linux real.
Agora conecte seu computador ao Pi como:
Você só precisa conectar 3 cabos:
- Terra a Terra
- Tx on Pi para Rx no USB para porta serial
- Rx no Pi para Tx no USB para porta serial
Isso também está documentado em: https://www.raspberrypi.org/documentation/usage/gpio/README.md
Tenha cuidado para não conectar o aterramento ao 5V, já queimei 2 UART para chips USB e um RPI UART fazendo isso!
Você não precisa conectar o 5V ao 5V. Eu acho que você pode energizar seu Pi assim, mas li que isso é uma má ideia, 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 isso: https://www.youtube.com/watch?v=zUBPeoLW16Q
Veja também
Pergunta semelhante no RPI SE: /raspberrypi/3867/ssh-to-rpi-without-a-network-connection