SSH đến RPi mà không cần kết nối mạng?


36

Có thể SSHvào RPi mà không cần kết nối mạng không?

Tôi có thể tưởng tượng rằng bạn có thể làm điều đó bằng cách sử dụng cáp LAN từ máy tính đến RPi hoặc có thể sử dụng cáp USB.

Tôi thực sự có quyền truy cập vào một mạng, tuy nhiên nó không cho phép các kết nối đến (thậm chí từ IP cục bộ) đến bất kỳ cổng nào ngoại trừ 80 và 443 tôi sẽ tưởng tượng.


3
Chỉ cần sử dụng cáp chéo, tôi đoán đó là giải pháp bạn cần;). Kết nối tất cả các cáp trong cáp UTP như thế này: numitechsolutions.com/wp-content/uploads/2012/01/NH sau đó kết nối nó với PI và PC của bạn. Cung cấp cho họ một IP, được thực hiện;).
Laurence

Về quy trình kết nối, có một bài viết tuyệt vời: Kết nối từ xa Raspberry Pi - Không có mạng! . Nó giải thích cả cấu hình máy tính xách tay Mac và Windows.
Tomáš Zato

1
Với các bộ điều hợp Ethernet hiện đại, việc trao đổi chéo không còn cần thiết nữa. Trên hộp Windows, chỉ cần 'chia sẻ' kết nối mạng WIFI của bạn (mở thuộc tính bộ điều hợp, chia sẻ) với mạng LAN của bạn. RPI sẽ nhận địa chỉ IP từ đó. Điều này sẽ cung cấp cho bạn quyền truy cập SSH từ hộp Windows vào RPi của bạn nhưng không truy cập bên ngoài.
fcm

Như fcm bình luận cáp chéo chủ yếu là một điều của quá khứ bây giờ ; giao diện ethernet hiện đại bao gồm cả các giao diện trên pi sẽ tự giao nhau về mặt vật lý khi được cắm với nhau.
goldilocks

Tôi chỉ bị mắc kẹt với vấn đề này và bây giờ tôi có thể làm điều đó. Vì vậy, tôi cần chia sẻ giải pháp của tôi. Bạn có thể xem dưới dạng liên kết này, topboxbox.blogspot.com/2017/11/ Kẻ
TopBoxBox

Câu trả lời:


6

Không có bộ định tuyến + không có màn hình + cáp Ethernet thông thường + RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10

Trước tiên, chúng tôi phải kích hoạt máy chủ SSH trên Pi, được tắt theo mặc định để bảo mật.

Nếu bạn đã có shell trên Pi thông qua phương thức không phải SSH như màn hình + bàn phím hoặc UART (xem bên dưới), chỉ cần chạy:

sudo systemctl enable ssh
sudo service sshd start

như đã giải thích tại: SSH không hoạt động với cài đặt mới Điều này vẫn tồn tại trên các bốt.

Nếu không, hãy chèn thẻ SD vào máy chủ của bạn và tạo một tệp trống có tên là sshtệp trong boot/phân vùng.

Trên máy chủ Ubuntu, nó được gắn tự động và bạn có thể thực hiện:

sudo touch /media/$USER/boot/ssh

mà bạn có thể xác nhận với:

lsblk

trong đó có:

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

Nếu bạn không bật trình nền SSHD trên Pi thì kết nối SSH sẽ thất bại với:

ssh: connect to host 10.42.0.160 port 22: Connection refused

khi chúng ta thử nó sau này

Sau khi kích hoạt máy chủ SSH

Tiếp theo, khởi động Pi và liên kết cáp Ethernet từ máy tính xách tay của bạn trực tiếp với Pi:

nhập mô tả hình ảnh ở đây

Trên Ubuntu 17.04 để khắc phục lỗi này như đã đề cập trong câu trả lời này trước tiên bạn cần:

sudo apt-get install dnsmasq-base

Trên máy chủ, mở trình quản lý mạng:

nm-connection-editor

Và đi:

  1. + ký (Thêm một kết nối mới)
  2. Ethernet
  3. Tạo nên
  4. Cài đặt IPv4
  5. Phương pháp: Được chia sẻ với các máy tính khác
  6. Đặt tên tốt cho nó
  7. Tiết kiệm

nhập mô tả hình ảnh ở đây

Tìm IP của Pi trên máy chủ:

cat /var/lib/misc/dnsmasq.leases

xuất ra một cái gì đó như:

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, như thường lệ:

ssh pi@10.42.0.160

Tôi cũng có những điều sau đây .bashrc:

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

Từ bên trong Pi, lưu ý rằng nó có thể truy cập internet bình thường thông qua các giao diện khác của máy chủ của bạn:

ping google.com

Ví dụ: trên máy tính xách tay của tôi, Pi chiếm Ethernet, nhưng máy chủ cũng được kết nối với internet thông qua WiFi.

Không yêu cầu cáp chéo nếu card mạng máy chủ hỗ trợ Auto MDI-X . Đây là trường hợp đối với hầu hết các phần cứng gần đây, bao gồm cả Lenovo T430 2012 mà tôi đã thử nghiệm, "Kết nối mạng Gigabit Intel® 82579LM", tài liệu hỗ trợ cho Auto MDI-X .

Bây giờ bạn cũng có thể:

Bộ chuyển đổi USB nối tiếp UART

Đây là một giải pháp thay thế cho SSH nếu bạn chỉ muốn lấy shell trên Pi: https://en.wikipedia.org/wiki/Serial_port

Điều này không sử dụng SSH hoặc mạng chính nó, mà là giao diện nối tiếp cũ hơn, đơn giản hơn, trực tiếp hơn, đáng tin cậy hơn, băng thông thấp hơn, khoảng cách thấp hơn. Pi sẽ không có quyền truy cập Internet bằng phương pháp này.

Máy tính để bàn vẫn có một cổng nối tiếp mà bạn có thể kết nối trực tiếp với dây với Pi, nhưng chúng được ẩn trong hầu hết các máy tính xách tay, và vì vậy chúng tôi cần mua một bộ chuyển đổi USB giá rẻ. Ở đây tôi đã sử dụng: https://www.amazon.co.uk/gp/product/B072K3Z3TL Xem thêm: https://unix.stackexchange.com/questions/307390/what-is-the-difference-b between- ttys0-ttyusb0-và-ttyama0-in-linux / 367882 # 367882

Đầu tiên cắm thẻ SD trên máy chủ và chỉnh sửa config.txttệp có trong phân vùng đầu tiên để thêm:

enable_uart=1

như được giải thích tại: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195

Phân vùng đầu tiên này chứa bộ nạp khởi động, các tệp cấu hình của nó và kernel (Linux / your), config.txtlà một trong số chúng. Phân vùng thứ hai chứa hệ thống tập tin gốc Linux thực tế.

Bây giờ kết nối máy tính của bạn với Pi dưới dạng:

nhập mô tả hình ảnh ở đây

Bạn chỉ cần gắn 3 dây cáp:

  • Mặt đất
  • Tx trên Pi đến Rx trên cổng USB sang nối tiếp
  • Rx trên Pi đến Tx trên tye USB sang cổng nối tiếp

Điều này cũng được ghi nhận tại: https://www.raspberrypi.org/documentation/usage/gpio/README.md

Cẩn thận không liên kết nối đất với 5V, tôi đã đốt 2 UART với chip USB bằng cách đó!

Bạn không cần phải kết nối 5V với 5V. Tôi nghĩ rằng bạn có thể cấp nguồn cho Pi của mình như vậy, nhưng tôi đã đọc rằng đây là một ý tưởng tồi, chỉ cần sử dụng nguồn năng lượng USB thông thường.

Cuối cùng, cắm mặt USB của đầu nối vào máy tính chủ của bạn và lấy vỏ với:

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

Thoát với Ctrl-A \.

Đây là video do Adaf nhung thể hiện: https://www.youtube.com/watch?v=zUBPeoLW16Q

Xem thêm

Câu hỏi tương tự về Stack Overflow: https://stackoverflow.com/questions/16040128/hook-up-raspberry-pi-via-ethernet-to-l mỏi-without-router


Bạn không nên lặp lại luôn cùng một câu trả lời . Thay vào đó hãy bình luận với một liên kết đến câu trả lời đầu tiên của bạn hoặc nhiều nhất là tạo một câu trả lời mới với một khía cạnh khác và một liên kết đến câu trả lời đầu tiên làm tài liệu tham khảo.
Ingo

@Ingo Tôi tin rằng câu trả lời này là câu trả lời hay nhất cho cả hai câu hỏi. Nếu bạn nghĩ rằng tôi chưa trả lời về các câu hỏi, xin vui lòng cho tôi biết làm thế nào. Một bình luận sẽ biến mất trên biển bình luận, và sau đó những người khác sẽ lặp lại cùng một nội dung với một từ ngữ khác.
Ciro Santilli 心 心 事件

2

Bạn có thể dễ dàng làm điều đó bằng cách kết nối pi của bạn với máy tính xách tay thông qua cáp LAN. Vui lòng đảm bảo rằng (trong danh sách khi bạn đang thực hiện lần đầu tiên) bạn có máy chủ dhcp hoạt động trên máy tính xách tay của bạn và nghe trên giao diện LAN bạn đang sử dụng để kết nối với pi. Bạn cần bằng cách nào đó gán địa chỉ cho quả mâm xôi.


Bạn không cần dhcp.
Laurence

1
Nếu bạn có IP được cấu hình tĩnh, bạn không phải. Nếu không bạn cần một cái gì đó để cung cấp cho bạn một địa chỉ IP.
codewar chiến binh

2

Đối với tôi, cách thuận tiện nhất là sử dụng USB Tethering trên thiết bị Android của tôi, kết nối nó với quả mâm xôi và sau đó SSH từ điện thoại của tôi sang quả mâm xôi.

Xem bài đăng này SSH từ Android sang rPI bằng USB?


1

Vấn đề là bạn muốn kết nối 2 thiết bị cùng loại. Nhưng nó vẫn có thể. Bạn có thể sử dụng cáp Crossover cho điều này (Phương pháp 1) hoặc bạn có thể sử dụng một công tắc hoặc trung tâm để tự động thực hiện kết nối chéo (Phương pháp 2). Hoặc chỉ sử dụng một bộ định tuyến đơn giản (Phương pháp 3).

Tạo kết nối có thể

Phương pháp 1:

Sử dụng cáp Crossover và kết nối PC và PI của bạn:

Cáp chéo Ethernet là một loại cáp Ethernet được sử dụng để kết nối trực tiếp các thiết bị điện toán với nhau. Cáp nối thẳng hoặc cáp thông thường được sử dụng để kết nối từ bộ điều khiển giao diện mạng máy chủ (máy tính hoặc thiết bị tương tự) với bộ chuyển đổi mạng, bộ tập trung hoặc bộ định tuyến. Một cáp có kết nối "chéo" được sử dụng để kết nối hai thiết bị cùng loại: hai máy chủ hoặc hai công tắc với nhau. Nhờ có khả năng Auto-MDIX.

Bạn cần kết nối các dây cáp trong cáp UTP như thế này: http://www.incentre.net/wp-content/uploads/2015/02/ethcablerj45cr.gif

Nguồn: http://en.wikipedia.org/wiki/Ethernet_crossover_cable

Phương pháp 2:

Bạn cũng có thể sử dụng cáp Ethernet xoắn hiện đại để kết nối với PI của mình. Nhưng bạn cần một trung tâm hoặc chuyển đổi cho việc này:

các kết nối có thể được thực hiện bằng cáp nối thẳng bằng cổng MDI-X, còn được gọi là kết nối "chéo chéo nội bộ" hoặc "chéo chéo". Các cổng trung tâm và chuyển đổi có giao thoa nội bộ như vậy thường được dán nhãn như vậy, với "đường lên" hoặc "X". Ví dụ: 3Com thường gắn nhãn các cổng 1X, 2X, v.v. Trong một số trường hợp, một nút được cung cấp để cho phép một cổng hoạt động như một cổng bình thường hoặc cổng đường lên.

Nguồn: http://en.wikipedia.org/wiki/Ethernet_over_twisted_ Pair

Thêm thông tin:

Được giới thiệu vào năm 1998, điều này làm cho sự khác biệt giữa đường lên và cổng thông thường và các công tắc chọn thủ công trên các hub và công tắc cũ đã lỗi thời. Nếu một hoặc cả hai thiết bị được kết nối có tính năng cấu hình MDI / MDI-X tự động thì không cần cáp chéo. Mặc dù Auto-MDIX được chỉ định là một tính năng tùy chọn trong tiêu chuẩn 1000BASE-T, nhưng trên thực tế, nó được triển khai rộng rãi trên hầu hết các giao diện. Bên cạnh việc MDI / MDI-X tự động cuối cùng đã được thỏa thuận, tính năng này cũng có thể được gọi bằng nhiều thuật ngữ cụ thể của nhà cung cấp bao gồm: Tự động lên đường lên và giao dịch, Nhận dạng cáp phổ biến và Tự động cảm biến.

Nguồn: http://en.wikipedia.org/wiki/Ethernet_crossover_cable

Phương pháp 3

Sử dụng Bộ định tuyến và kết nối cả PI và PC với Bộ định tuyến.

Tạo kết nối

Cung cấp cho cả hai IP trong cùng một phạm vi, ví dụ:

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

Bạn có thể tìm thấy ở đây làm thế nào để làm điều này: http://www.cyberciti.biz/faq/linux-configure-a-static-ip-address-tutorial/

Kích hoạt SSH

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

Kết nối với PI

Trên Windows sử dụng ví dụ Putty .

Phương pháp khác:

Bạn cũng có thể xem tại đây: http://www.linux-usb.org/usbnet/


Phương pháp 2 hoạt động như thế nào? Tôi không cần kết nối mạng đang hoạt động trên máy tính của tôi?
Tyilo

Tôi đã không hoàn thành phần máy bay phản lực đó. Cho tôi 1 giây.
Laurence

4
Tôi nghĩ rằng thời gian mà mọi người phải sử dụng cáp chéo đã biến mất mãi mãi :) Ngay bây giờ mỗi thẻ ethernet mới có thể thực hiện giao nhau mà không cần phải có cáp chéo.
CodeWarrior

Bạn không bao giờ biết anh ấy có loại PC nào, ngoài ra, bạn luôn có thể thử cáp UTP.
Laurence

Cáp Ethernet thẳng thông thường hoạt động trên PI 2, đọc ở đâu đó rằng giao diện của nó có thể nhận ra điều đó. Chỉ cần thử nghiệm trên Ubuntu 16.04, RPI 2 Raspbian 2016.05.
Ciro Santilli 心 心 事件
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.