Da SSH a RPi senza una connessione di rete?


36

È possibile SSHaccedere a un RPi senza una connessione di rete?

Potrei immaginare che potresti farlo usando un cavo LAN dal computer a RPi o magari usando un cavo USB.

In realtà ho accesso a una rete, tuttavia non consente connessioni in entrata (anche da IP locali) a nessuna porta tranne 80 e 443, immagino.


3
Basta usare un cavo crossover, immagino che questa sia la soluzione di cui hai bisogno;). Collegare tutti i cavi nel cavo UTP in questo modo: numitechsolutions.com/wp-content/uploads/2012/01/… quindi collegarlo al proprio PI e PC. Dai loro un IP, fatto;).
Laurence,

Per quanto riguarda il processo di connessione, c'è un ottimo articolo: Connessioni remote di Raspberry Pi - Senza rete! . Spiega la configurazione del laptop Mac e Windows.
Tomáš Zato - Ripristina Monica il

1
Con i moderni adattatori Ethernet, il crossover non è più necessario. Su una finestra di Windows, basta 'condividere' la connessione di rete WIFI (aprire le proprietà dell'adattatore, condividere) con la propria LAN. L'RPI otterrà l'indirizzo IP da lì. Questo ti darà accesso SSH dalla finestra di Windows al tuo RPi ma non accesso esterno.
fcm

Come commentano i fcm, i cavi crossover sono ormai per lo più un ricordo del passato ; le interfacce ethernet contemporanee, comprese quelle sul PI, si incrociano fisicamente quando collegate.
Riccioli d'oro

Ho appena bloccato anche questo problema e ora posso farlo. Quindi ho bisogno di condividere la mia soluzione. Puoi vedere come questo link topboxbox.blogspot.com/2017/11/…
TopBoxBox

Risposte:


6

Nessun router + nessuno schermo + cavo Ethernet normale + RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10

Innanzitutto dobbiamo abilitare il server SSH sul Pi, che è disabilitato di default per sicurezza.

Se hai già una shell sul Pi attraverso un metodo non SSH come schermo + tastiera o UART (vedi sotto), esegui semplicemente:

sudo systemctl enable ssh
sudo service sshd start

come spiegato in: SSH non funziona con una nuova installazione Questo persiste su tutti gli stivali.

Altrimenti, inserisci la scheda SD sul tuo host e crea un file magico vuoto chiamato sshfile nella boot/partizione.

Sugli host Ubuntu, viene montato automaticamente e puoi fare solo:

sudo touch /media/$USER/boot/ssh

che puoi confermare con:

lsblk

che 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

Se non si abilita il demone SSHD su Pi, la connessione SSH fallirà con:

ssh: connect to host 10.42.0.160 port 22: Connection refused

quando lo proveremo più tardi.

Dopo aver abilitato il server SSH

Quindi, avvia il Pi e collega un cavo Ethernet dal tuo laptop direttamente al Pi:

inserisci qui la descrizione dell'immagine

Su Ubuntu 17.04 per aggirare questo bug come indicato in questa risposta è necessario innanzitutto:

sudo apt-get install dnsmasq-base

Sull'host, apri il gestore di rete:

nm-connection-editor

E vai:

  1. + segno (Aggiungi una nuova connessione)
  2. Ethernet
  3. Creare
  4. Impostazioni IPv4
  5. Metodo: condiviso con altri computer
  6. Impostare un buon nome per questo
  7. Salvare

inserisci qui la descrizione dell'immagine

Trova l'IP del Pi sull'host:

cat /var/lib/misc/dnsmasq.leases

produce qualcosa come:

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

10.42.0.160 è l'IP, quindi come al solito:

ssh pi@10.42.0.160

Ho anche quanto segue nel mio .bashrc:

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

Dall'interno del Pi, nota che può accedere a Internet normalmente attraverso le altre interfacce del tuo host:

ping google.com

Ad esempio sul mio laptop, Pi utilizza Ethernet, ma l'host è anche connesso a Internet tramite WiFi.

Il cavo crossover non è necessario se la scheda di rete host supporta Auto MDI-X . Questo è il caso dell'hardware più recente, incluso ad esempio il Lenovo T430 2012 con cui ho provato, che ha un "Intel® 82579LM Gigabit Network Connection" che documenta il supporto per Auto MDI-X .

Ora puoi anche:

Convertitore seriale USB UART

Questa è un'alternativa a SSH se vuoi semplicemente ottenere una shell sul Pi: https://en.wikipedia.org/wiki/Serial_port

Questo non utilizza SSH o la rete stessa, ma piuttosto l'interfaccia seriale più vecchia, più semplice, più diretta, più affidabile, con larghezza di banda inferiore e distanza inferiore. Il Pi non avrà accesso a Internet con questo metodo.

I computer desktop hanno ancora una porta seriale che puoi collegare direttamente filo a filo con il Pi, ma questi sono nascosti nella maggior parte dei laptop, quindi è necessario acquistare un adattatore USB economico. Qui ho usato: https://www.amazon.co.uk/gp/product/B072K3Z3TL Vedi anche: https://unix.stackexchange.com/questions/307390/what-is-the-difference-between- ttyS0-ttyUSB0-e-ttyama0-in-linux / 367882 # 367882

Innanzitutto collegare la scheda SD sull'host e modificare il config.txtfile presente nella prima partizione per aggiungere:

enable_uart=1

come spiegato a: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195

Questa prima partizione contiene il bootloader, i suoi file di configurazione e il kernel (Linux / your), config.txtessendo uno di questi. La seconda partizione contiene l'attuale filesystem di root Linux.

Ora collega il tuo computer al Pi come:

inserisci qui la descrizione dell'immagine

Hai solo bisogno di collegare 3 cavi:

  • Terra a Terra
  • Tx su Pi a Rx sull'USB alla porta seriale
  • Rx su Pi a Tx su USB a porta seriale

Questo è anche documentato su: https://www.raspberrypi.org/documentation/usage/gpio/README.md

Fai attenzione a non collegare il Ground al 5V, così ho già masterizzato 2 UART su chip USB!

Non è necessario collegare affatto il 5V al 5V. Penso che puoi alimentare il tuo Pi in quel modo, ma ho letto che questa è una cattiva idea, basta usare la solita fonte di alimentazione USB.

Infine, collega il lato USB del connettore al computer host e ottieni una shell con:

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

Esci con Ctrl-A \.

Ecco un video di Adafruit che lo mostra: https://www.youtube.com/watch?v=zUBPeoLW16Q

Guarda anche

Domanda simile su Stack Overflow: https://stackoverflow.com/questions/16040128/hook-up-raspberry-pi-via-ethernet-to-laptop-without-router


Non dovresti ripetere sempre la stessa risposta . Invece fai un commento con un link alla tua prima risposta o al massimo fai una nuova risposta con un aspetto diverso e un link alla prima risposta come riferimento.
Ingo,

@Ingo Credo che questa risposta sia la migliore finora per entrambe le domande. Se ritieni che non abbia risposto alle domande, per favore fammi sapere come. Un commento scomparirà nel mare di commenti, e altri ripeteranno lo stesso contenuto con una diversa formulazione.
Ciro Santilli 26 改造 中心 法轮功 六四 事件 il

2

Puoi farlo facilmente collegando il tuo pi al laptop tramite cavo LAN. Assicurati che (all'elenco mentre lo fai per la prima volta) hai un server DHCP funzionante sul tuo laptop e in ascolto sull'interfaccia LAN che stai usando per connetterti con pi. È necessario in qualche modo assegnare l'indirizzo a Raspberry.


Non hai bisogno di dhcp.
Laurence,

1
Se hai IP configurato staticamente non è necessario. Altrimenti hai bisogno di qualcosa che ti dia un indirizzo IP.
codewarrior,


1

Il problema è che si desidera connettere 2 dispositivi dello stesso tipo. Ma è ancora possibile. A tale scopo è possibile utilizzare un cavo crossover (metodo 1) oppure utilizzare uno switch o un hub per effettuare automaticamente una connessione crossover (metodo 2). O semplicemente usa un semplice router (Metodo 3).

Rendere possibile una connessione

Metodo 1:

Usa un cavo Crossover e collega il tuo PC e PI:

Un cavo crossover Ethernet è un tipo di cavo Ethernet utilizzato per collegare direttamente i dispositivi di elaborazione. Sono stati utilizzati normali cavi diretti o patch per connettersi da un controller di interfaccia di rete host (un computer o un dispositivo simile) a uno switch di rete, un hub o un router. Un cavo con connessioni "incrociate" è stato utilizzato per collegare due dispositivi dello stesso tipo: due host o due switch tra loro. A causa dell'inclusione della funzionalità Auto-MDIX.

È necessario collegare i cavi nel cavo UTP in questo modo: http://www.incentre.net/wp-content/uploads/2015/02/ethcablerj45cr.gif

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

method2:

Puoi anche utilizzare un moderno cavo Ethernet a doppino intrecciato per connetterti al tuo PI. Ma hai bisogno di un hub o switch per questo:

le connessioni possono essere effettuate con un cavo diretto attraverso una porta MDI-X, nota anche come connessione "crossover interno" o "crossover incorporato". Le porte hub e switch con tali crossover interni sono generalmente etichettate come tali, con "uplink" o "X". Ad esempio, 3Com di solito etichetta le loro porte 1X, 2X e così via. In alcuni casi viene fornito un pulsante per consentire a una porta di funzionare come una porta normale o uplink.

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

Maggiori informazioni:

Introdotto nel 1998, ciò ha reso obsoleta la distinzione tra porte uplink e normali e switch di selezione manuale su hub e switch più vecchi. Se uno o entrambi i due dispositivi collegati dispongono della funzione di configurazione automatica MDI / MDI-X, non sono necessari cavi incrociati. Sebbene Auto-MDIX sia stato specificato come funzionalità opzionale nello standard 1000BASE-T, in pratica è ampiamente implementato sulla maggior parte delle interfacce. Oltre alla MDI / MDI-X automatica concordata, questa funzione può essere citata da vari termini specifici del fornitore, tra cui: uplink e commercio automatici, riconoscimento universale dei cavi e rilevamento automatico.

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

Metodo 3

Utilizzare un router e collegare sia il PI che il PC al router.

Effettua la connessione

Dai a entrambi un IP nello stesso intervallo, ad esempio:

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

Puoi trovare qui come fare: http://www.cyberciti.biz/faq/linux-configure-a-static-ip-address-tutorial/

Abilita SSH

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

Connettersi al PI

Su Windows utilizzare ad esempio Putty .

Altro metodo:

Puoi anche guardare qui: http://www.linux-usb.org/usbnet/


Come funziona il metodo 2? Non ho bisogno di una connessione di rete attiva sul mio computer?
Tyilo,

Non ho finito quella parte del jet. Dammi 1 sec.
Laurence,

4
Ho pensato che il tempo in cui le persone dovevano usare i cavi crossover è andato per sempre :) In questo momento ogni nuova scheda Ethernet è in grado di fare incrocio senza la necessità di avere un cavo crossover.
codewarrior,

Non sai mai che tipo di PC ha, a parte questo, puoi sempre provare un cavo UTP.
Laurence,

I normali cavi Ethernet dritti funzionano su PI 2, leggi da qualche parte che la sua interfaccia può riconoscerlo. Appena testato su Ubuntu 16.04, RPI 2 Raspbian 2016.05.
Ciro Santilli 22 改造 中心 法轮功 六四 事件
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.