SSH na RPi bez połączenia sieciowego?

36

Czy można SSHwejść do RPi bez połączenia sieciowego?

Mogę sobie wyobrazić, że można to zrobić za pomocą kabla LAN od komputera do RPi lub może za pomocą kabla USB.

Mam dostęp do sieci, ale nie pozwala na połączenia przychodzące (nawet z lokalnych adresów IP) do portów z wyjątkiem 80 i 443.

Tyilo
źródło
3
Wystarczy użyć kabla z przeplotem, myślę, że to jest rozwiązanie, którego potrzebujesz;). Podłącz wszystkie kable w kablu UTP w następujący sposób: numitechsolutions.com/wp-content/uploads/2012/01/…, a następnie podłącz go do swojego PI i komputera. Podaj adres IP, gotowe;).
Laurence,
Na temat procesu połączenia jest świetny artykuł: Zdalne połączenia Raspberry Pi - bez sieci! . Wyjaśnia konfigurację laptopów Mac i Windows.
Tomáš Zato - Przywróć Monikę
1
Dzięki nowoczesnym adapterom Ethernet crossover nie jest już potrzebny. W systemie Windows po prostu „udostępnij” połączenie sieciowe WIFI (otwórz właściwości karty, udostępnij) swojej sieci LAN. Stąd RPI otrzyma adres IP. To da ci dostęp SSH z okna Windows do twojego RPi, ale nie dostęp zewnętrzny.
fcm
Jak komentuje fcm, kable krosowe należą już do przeszłości ; współczesne interfejsy ethernetowe, w tym te na pi, fizycznie się skrzyżują po połączeniu.
złotowłosa
Po prostu utknąłem z tym problemem i teraz mogę to zrobić. Więc muszę udostępnić moje rozwiązanie. Możesz zobaczyć jako ten link, topboxbox.blogspot.com/2017/11/…
TopBoxBox

Odpowiedzi:

6

Bez routera + bez ekranu + zwykły kabel Ethernet + RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10

Najpierw musimy włączyć serwer SSH na Pi, który jest domyślnie wyłączony dla bezpieczeństwa.

Jeśli masz już powłokę na Pi za pomocą metody innej niż SSH, takiej jak screen + klawiatura lub UART (patrz poniżej), po prostu uruchom:

sudo systemctl enable ssh
sudo service sshd start

jak wyjaśniono na stronie: SSH nie działa przy świeżej instalacji. To się powtarza podczas rozruchu.

W przeciwnym razie włóż kartę SD na hoście i utwórz magiczny pusty plik o nazwie sshplik na boot/partycji.

Na hostach Ubuntu jest montowany automatycznie i możesz wykonać tylko:

sudo touch /media/$USER/boot/ssh

co możesz potwierdzić za pomocą:

lsblk

który zawiera:

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

Jeśli nie włączysz demona SSHD na Pi, połączenie SSH nie powiedzie się:

ssh: connect to host 10.42.0.160 port 22: Connection refused

kiedy spróbujemy później.

Po włączeniu serwera SSH

Następnie uruchom Pi i podłącz kabel Ethernet z laptopa bezpośrednio do Pi:

wprowadź opis zdjęcia tutaj

W systemie Ubuntu 17.04, aby obejść ten błąd, jak wspomniano w tej odpowiedzi , najpierw potrzebujesz:

sudo apt-get install dnsmasq-base

Na hoście otwórz menedżera sieci:

nm-connection-editor

I idź:

  1. + znak (Dodaj nowe połączenie)
  2. Ethernet
  3. Stwórz
  4. Ustawienia IPv4
  5. Metoda: udostępniona innym komputerom
  6. Ustaw dla niego dobre imię
  7. Zapisać

wprowadź opis zdjęcia tutaj

Znajdź adres IP komputera Pi na hoście:

cat /var/lib/misc/dnsmasq.leases

wyprowadza coś takiego:

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

10.42.0.160 jest adresem IP, a następnie, jak zwykle:

ssh [email protected]

Mam również następujące elementy .bashrc:

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

Zauważ, że wewnątrz Pi można zauważyć, że może on normalnie uzyskać dostęp do Internetu za pośrednictwem innych interfejsów hosta:

ping google.com

Na przykład na moim laptopie Pi zajmuje Ethernet, ale host jest również podłączony do Internetu za pośrednictwem Wi-Fi.

Kabel krosowany nie jest wymagany, jeśli karta sieciowa hosta obsługuje Auto MDI-X . Dotyczy to najnowszego sprzętu, w tym na przykład testowanego przeze mnie Lenovo T430 2012, który ma „Intel® 82579LM Gigabit Network Connection”, który dokumentuje obsługę Auto MDI-X .

Teraz możesz także:

Konwerter szeregowy USB UART

Jest to alternatywa dla SSH, jeśli chcesz po prostu uzyskać powłokę na Pi: https://en.wikipedia.org/wiki/Serial_port

Nie używa to SSH ani samego sieci, ale raczej starszy, prostszy, bardziej bezpośredni, bardziej niezawodny, mniejszą przepustowość, niższy interfejs szeregowy. Dzięki tej metodzie Pi nie będzie miało dostępu do Internetu.

Komputery stacjonarne nadal mają port szeregowy, który można podłączyć bezpośrednio do drutu za pomocą Pi, ale są one ukryte w większości laptopów, dlatego musimy kupić tani adapter USB. Tutaj użyłem: https://www.amazon.co.uk/gp/product/B072K3Z3TL Zobacz także: https://unix.stackexchange.com/questions/307390/what-is-the-difference-between- ttys0-ttyusb0-and-ttyama0-in-linux / 367882 # 367882

Najpierw podłącz kartę SD do hosta i edytuj config.txtplik obecny na pierwszej partycji, aby dodać:

enable_uart=1

jak wyjaśniono na stronie : https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195

Ta pierwsza partycja zawiera bootloader, pliki konfiguracyjne i jądro (Linux / your), które config.txtsą jednym z nich. Druga partycja zawiera rzeczywisty główny system plików Linux.

Teraz podłącz swój komputer do Pi jako:

wprowadź opis zdjęcia tutaj

Musisz tylko podłączyć 3 kable:

  • Z ziemi na ziemię
  • Tx na Pi do Rx na USB do portu szeregowego
  • Rx na Pi do Tx na tye USB na port szeregowy

Jest to również udokumentowane na stronie : https://www.raspberrypi.org/documentation/usage/gpio/README.md

Uważaj, aby nie połączyć uziemienia z napięciem 5 V. W ten sposób spaliłem już 2 układy UART do układów USB!

Nie musisz w ogóle podłączać 5 V do 5 V. Myślę, że możesz tak zasilać swoje Pi, ale przeczytałem, że to zły pomysł, po prostu użyj zwykłego źródła zasilania USB.

Na koniec podłącz stronę USB złącza do komputera hosta i uzyskaj powłokę z:

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

Wyjdź z Ctrl-A \.

Oto wideo Adafruit pokazujące to: https://www.youtube.com/watch?v=zUBPeoLW16Q

Zobacz też

Podobne pytanie o przepełnienie stosu: https://stackoverflow.com/questions/16040128/hook-up-raspberry-pi-via-ethernet-to-laptop-without-router

Ciro Santilli
źródło
Nie powinieneś powtarzać zawsze tej samej odpowiedzi . Zamiast tego zrób komentarz z linkiem do swojej pierwszej odpowiedzi lub co najwyżej stwórz nową odpowiedź z innym aspektem i link do pierwszej odpowiedzi jako odniesienie.
Ingo
@Ingo Uważam, że ta odpowiedź jest jak dotąd najlepsza dla obu pytań. Jeśli uważasz, że nie odpowiedziałem na pytania, daj mi znać, jak to zrobić. Komentarz po prostu zniknie w morzu komentarzy, a następnie inni powtórzą tę samą treść z innym brzmieniem.
Ciro Santilli 26 改造 中心 法轮功 六四 事件
2

Możesz to łatwo zrobić, podłączając komputer do laptopa za pomocą kabla LAN. Upewnij się, że (na liście, gdy robisz to po raz pierwszy) masz serwer dhcp pracujący na twoim laptopie i nasłuchujący na interfejsie LAN, którego używasz do łączenia się z pi. Musisz jakoś przypisać adres do maliny.

wojownik
źródło
Nie potrzebujesz DHCP.
Laurence,
1
Jeśli masz skonfigurowane IP statycznie, nie musisz. Jeśli nie, potrzebujesz czegoś, co da ci adres IP.
codewarrior
2

Dla mnie najwygodniejszym sposobem jest użycie modemu USB na moim urządzeniu z Androidem, podłączenie go do maliny, a następnie SSH z mojego telefonu do maliny.

zobacz ten post SSH z Androida na rPI za pomocą USB?

philx_x
źródło
1

Problem polega na tym, że chcesz podłączyć 2 urządzenia tego samego typu. Ale wciąż jest to możliwe. W tym celu można użyć kabla krosowego (Metoda 1) lub przełącznika lub koncentratora, aby automatycznie wykonać połączenie krosowe (Metoda 2). Lub po prostu użyj prostego routera (Metoda 3).

Zrób połączenie

Metoda 1:

Użyj kabla krosowego i połącz komputer z PI:

Kabel krosowy Ethernet to rodzaj kabla Ethernet służącego do bezpośredniego łączenia urządzeń komputerowych. Do połączenia kontrolera interfejsu hosta (komputera lub podobnego urządzenia) z przełącznikiem sieciowym, koncentratorem lub routerem zastosowano zwykłe kable proste lub krosowe. Kabel z połączeniami, które „krzyżują się”, został użyty do połączenia dwóch urządzeń tego samego typu: dwóch hostów lub dwóch przełączników. Dzięki włączeniu funkcji Auto-MDIX.

Musisz podłączyć kable w kablu UTP w następujący sposób: http://www.incentre.net/wp-content/uploads/2015/02/ethcablerj45cr.gif

Źródło: http://en.wikipedia.org/wiki/Ethernet_crossover_cable

Metoda 2:

Możesz również użyć nowoczesnego skrętki Ethernet do połączenia z PI. Ale potrzebujesz do tego koncentratora lub przełącznika:

połączenia można wykonać za pomocą kabla prostego za pomocą portu MDI-X, znanego również jako połączenie „crossover wewnętrzny” lub „embedded crossover”. Porty koncentratora i przełącznika z takimi wewnętrznymi zwrotnicami są zwykle oznaczone jako takie, „w górę” lub „X”. Na przykład 3Com zwykle oznacza swoje porty 1X, 2X i tak dalej. W niektórych przypadkach dostępny jest przycisk umożliwiający portowi działanie jako port normalny lub port w górę.

Źródło: http://en.wikipedia.org/wiki/Ethernet_over_twisted_pair

Więcej informacji:

Wprowadzony w 1998 r. Sprawił, że rozróżnienie między portami ładującymi i normalnymi oraz ręcznymi przełącznikami wyboru w starszych koncentratorach i przełącznikach stało się przestarzałe. Jeśli jedno lub oba podłączone urządzenia mają funkcję automatycznej konfiguracji MDI / MDI-X, nie ma potrzeby stosowania kabli krosowanych. Chociaż Auto-MDIX został określony jako opcjonalna funkcja w standardzie 1000BASE-T, w praktyce jest on szeroko stosowany na większości interfejsów. Oprócz ostatecznie uzgodnionego Automatycznego MDI / MDI-X, do tej funkcji mogą również odnosić się różne warunki specyficzne dla dostawcy, w tym: Automatyczne wysyłanie i handel, Uniwersalne rozpoznawanie kabli i Automatyczne wykrywanie.

Źródło: http://en.wikipedia.org/wiki/Ethernet_crossover_cable

Metoda 3

Użyj routera i podłącz do niego zarówno PI, jak i PC.

Nawiąż połączenie

Daj im oba adresy IP w tym samym zakresie, na przykład:

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

Znajdziesz tutaj, jak to zrobić: http://www.cyberciti.biz/faq/linux-configure-a-static-ip-address-tutorial/

Włącz SSH

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

Połącz się z PI

W systemie Windows użyj na przykład Putty .

Inna metoda:

Możesz także zajrzeć tutaj: http://www.linux-usb.org/usbnet/

Laurence
źródło
Jak działa metoda 2? Czy nie potrzebuję aktywnego połączenia sieciowego na moim komputerze?
Tyilo,
Nie skończyłem tej części odrzutowca. Daj mi 1 sekundę.
Laurence,
4
Pomyślałem, że czas, w którym ludzie muszą korzystać z kabli krosowych, minął na zawsze :) W tej chwili każda nowa karta Ethernet może wykonywać krosowanie bez konieczności posiadania kabla krosowego.
codewarrior
Nigdy nie wiesz, jaki on ma komputer, poza tym zawsze możesz wypróbować kabel UTP.
Laurence,
Normalne proste kable Ethernet działają na PI 2, czytaj gdzieś, że jego interfejs to rozpoznaje. Właśnie przetestowane na Ubuntu 16.04, RPI 2 Raspbian 2016.05.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件