SSH к RPi без подключения к сети?

36

Можно ли SSHвойти в RPi без подключения к сети?

Я мог бы представить, что вы могли бы сделать это с помощью кабеля локальной сети от компьютера к RPi или, возможно, с помощью кабеля USB.

У меня действительно есть доступ к сети, однако он не разрешает входящие соединения (даже с локальных IP-адресов) с любыми портами, кроме 80 и 443, которые я себе представляю.

Tyilo
источник
3
Просто используйте перекрестный кабель, я думаю, что это решение вам нужно;). Подключите все кабели в кабеле UTP следующим образом: numitechsolutions.com/wp-content/uploads/2012/01/… затем подключите его к вашему PI и ПК. Дайте им IP, готово;).
Лоуренс
Что касается процесса подключения, есть отличная статья: Удаленные подключения Raspberry Pi - без сети! , Это объясняет конфигурацию ноутбука Mac и Windows.
Томаш Зато - Восстановить Монику
1
Благодаря современным адаптерам Ethernet кроссовер больше не нужен. В окне Windows просто «поделитесь» сетевым подключением WIFI (откройте свойства адаптера, предоставьте общий доступ) в вашей локальной сети. RPI получит IP-адрес оттуда. Это даст вам доступ SSH из коробки Windows к вашему RPi, но не внешний доступ.
2016 г.
Как комментирует fcm, кроссоверные кабели в основном остались в прошлом ; Современные Ethernet-интерфейсы, в том числе и на Пи, физически пересекаются при соединении друг с другом.
Златовласка
Я просто застрял с этой проблемой, и теперь я могу это сделать. Поэтому мне нужно поделиться своим решением. Вы можете видеть как эту ссылку, topboxbox.blogspot.com/2017/11/…
TopBoxBox

Ответы:

6

Нет маршрутизатора + нет экрана + обычный кабель Ethernet + RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10

Сначала мы должны включить SSH-сервер на Pi, который по умолчанию отключен для безопасности.

Если у вас уже есть оболочка для Pi через не-SSH метод, такой как screen + клавиатура или UART (см. Ниже), просто запустите:

sudo systemctl enable ssh
sudo service sshd start

как объяснено в: SSH не работает с новой установкой Это сохраняется при загрузке.

В противном случае, вставьте SD-карту на свой хост и создайте волшебный пустой файл с именем sshfile в boot/разделе.

На хостах Ubuntu он монтируется автоматически, и вы можете сделать просто:

sudo touch /media/$USER/boot/ssh

что вы можете подтвердить с помощью:

lsblk

который содержит:

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

Если вы не включите демон SSHD на Pi, то соединение SSH не будет выполнено с:

ssh: connect to host 10.42.0.160 port 22: Connection refused

когда мы попробуем это позже.

После включения сервера SSH

Затем загрузите Pi и подключите кабель Ethernet от вашего ноутбука напрямую к Pi:

введите описание изображения здесь

В Ubuntu 17.04, чтобы обойти эту ошибку, как указано в этом ответе, вам сначала нужно:

sudo apt-get install dnsmasq-base

На хосте откройте диспетчер сети:

nm-connection-editor

И иди:

  1. + подписать (добавить новое соединение)
  2. Ethernet
  3. Создайте
  4. Настройки IPv4
  5. Метод: Общий для других компьютеров
  6. Установите хорошее имя для этого
  7. Сохранить

введите описание изображения здесь

Найти IP Пи на хосте:

cat /var/lib/misc/dnsmasq.leases

выводит что-то вроде:

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

10.42.0.160 это IP, то как обычно:

ssh pi@10.42.0.160

У меня также есть следующее в моем .bashrc:

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

Заметьте, что внутри Pi он может нормально выходить в Интернет через другие интерфейсы вашего хоста:

ping google.com

Например, на моем ноутбуке Pi использует Ethernet, но хост также подключен к Интернету через WiFi.

Пересекающийся кабель не требуется, если сетевая карта хоста поддерживает Auto MDI-X . Это относится к самому последнему аппаратному обеспечению, включая, например, Lenovo T430 2012 года, на котором я тестировал, который имеет «Intel® 82579LM Gigabit Network Connection», который документирует поддержку Auto MDI-X .

Теперь вы также можете:

UART последовательный USB-конвертер

Это альтернатива SSH, если вы просто хотите получить оболочку для Pi: https://en.wikipedia.org/wiki/Serial_port

При этом используется не SSH или сама сеть, а более старый, более простой, более прямой, более надежный, с более низкой пропускной способностью и с меньшим расстоянием последовательного интерфейса. Пи не будет иметь доступа к Интернету с этим методом.

Настольные компьютеры по-прежнему имеют последовательный порт, который можно подключать напрямую к сети с Pi, но они скрыты в большинстве ноутбуков, поэтому нам нужно купить дешевый USB-адаптер. Здесь я использовал: https://www.amazon.co.uk/gp/product/B072K3Z3TL См. Также: https://unix.stackexchange.com/questions/307390/what-is-the-difference-between- ttys0-ttyUSB0-и-ttyama0-в-Linux / 367882 # 367882

Сначала подключите SD-карту к хосту и отредактируйте config.txtфайл, представленный в первом разделе, добавив:

enable_uart=1

как объяснено по адресу: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195

Этот первый раздел содержит загрузчик, его файлы конфигурации и ядро ​​(Linux / your), config.txtявляющееся одним из них. Второй раздел содержит актуальную корневую файловую систему Linux.

Теперь подключите ваш компьютер к Pi как:

введите описание изображения здесь

Вам нужно только подключить 3 кабеля:

  • Земля на землю
  • Tx от Pi до Rx от USB до последовательного порта
  • Rx на Pi на Tx на USB к последовательному порту

Это также задокументировано по адресу: https://www.raspberrypi.org/documentation/usage/gpio/README.md.

Будьте осторожны, чтобы не связать землю с 5 В, я уже записал 2 UART на USB-чипы!

Вам не нужно подключать 5V к 5V вообще. Я думаю, что вы можете так питать свой Pi, но я читал, что это плохая идея, просто используйте обычный источник питания USB.

Наконец, подключите разъем USB к вашему хост-компьютеру и получите оболочку с:

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

Выход с Ctrl-A \.

Вот видео от Adafruit, показывающее его: https://www.youtube.com/watch?v=zUBPeoLW16Q

Смотрите также

Аналогичный вопрос о переполнении стека: https://stackoverflow.com/questions/16040128/hook-up-raspberry-pi-via-ethernet-to-laptop-without-router

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
источник
Вы не должны повторять всегда один и тот же ответ . Вместо этого сделайте комментарий со ссылкой на ваш первый ответ или, самое большее, создайте новый ответ с другим аспектом и со ссылкой на первый ответ в качестве ссылки.
Инго
@ Инго, я считаю, что этот ответ является лучшим на оба вопроса. Если вы думаете, что я не ответил на один из вопросов, пожалуйста, дайте мне знать, как. Комментарий просто исчезнет в море комментариев, а затем другие будут повторять то же содержание с другой формулировкой.
Сиро Сантилли 新疆 改造 中心 法轮功 六四 事件
2

Вы можете легко сделать это, подключив пи к ноутбуку через кабель локальной сети. Пожалуйста, убедитесь, что (в списке, пока вы делаете это в первый раз) у вас есть dhcp сервер, работающий на вашем ноутбуке и прослушивающий интерфейс LAN, который вы используете для соединения с pi. Вам нужно как-то назначить адрес малине.

CodeWarrior
источник
Вам не нужен Dhcp.
Лоуренс
1
Если у вас IP настроен статически, вам не нужно. Если нет, то вам нужно что-то, чтобы дать вам IP-адрес.
Codewarrior
2

Для меня наиболее удобный способ - использовать USB-модем на моем Android-устройстве, подключить его к Raspberry, а затем SSH с моего телефона к Raspberry.

увидеть этот пост SSH от Android до RPI с помощью USB?

philx_x
источник
1

Проблема в том, что вы хотите подключить 2 устройства одного типа. Но это все еще возможно. Для этого вы можете использовать перекрестный кабель (метод 1) или коммутатор или концентратор для автоматического создания перекрестного соединения (метод 2). Или просто используйте простой маршрутизатор (метод 3).

Сделать возможным соединение

Method1:

Используйте перекрестный кабель и подключите ваш компьютер и PI:

Кроссоверный кабель Ethernet - это тип кабеля Ethernet, который используется для непосредственного соединения вычислительных устройств. Обычные прямые или соединительные кабели использовались для подключения от контроллера сетевого интерфейса хоста (компьютера или аналогичного устройства) к сетевому коммутатору, концентратору или маршрутизатору. Кабель с «пересекающимися» соединениями использовался для подключения двух устройств одного типа: двух хостов или двух коммутаторов друг к другу. Благодаря включению возможности Auto-MDIX.

Вам необходимо подключить кабели в кабеле UTP следующим образом: http://www.incentre.net/wp-content/uploads/2015/02/ethcablerj45cr.gif

Источник: http://en.wikipedia.org/wiki/Ethernet_crossover_cable

Method2:

Вы также можете использовать современный кабель Ethernet для витой пары для подключения к вашему PI. Но вам нужен концентратор или переключатель для этого:

соединения могут быть выполнены с помощью прямого кабеля с помощью порта MDI-X, также известного как соединение «внутренний кроссовер» или «встроенный кроссовер». Порты концентратора и коммутатора с такими внутренними кроссоверами обычно обозначаются как таковые с «восходящей линией связи» или «Х». Например, 3Com обычно маркирует свои порты 1X, 2X и так далее. В некоторых случаях предусмотрена кнопка, позволяющая порту действовать как обычный или восходящий порт.

Источник: http://en.wikipedia.org/wiki/Ethernet_over_twisted_pair

Больше информации:

Введенный в 1998 году, он сделал различие между восходящими и обычными портами и ручными переключателями на старых концентраторах и коммутаторах устаревшими. Если одно или оба из двух подключенных устройств имеют функцию автоматической конфигурации MDI / MDI-X, перекрестные кабели не нужны. Хотя Auto-MDIX была указана в качестве дополнительной функции в стандарте 1000BASE-T, на практике она широко применяется в большинстве интерфейсов. Помимо окончательно согласованного Automatic MDI / MDI-X, эта функция может также упоминаться различными терминами, специфичными для поставщиков, включая: автоматическую передачу и обмен данными, универсальное распознавание кабелей и автоматическое распознавание.

Источник: http://en.wikipedia.org/wiki/Ethernet_crossover_cable

Способ 3

Используйте маршрутизатор и подключите PI и ПК к маршрутизатору.

Сделать связь

Дайте им оба IP-адреса в одном диапазоне, например:

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

Вы можете найти здесь, как это сделать: http://www.cyberciti.biz/faq/linux-configure-a-static-ip-address-tutorial/

Включить SSH

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

Подключиться к PI

На винде используйте например Putty .

Другой метод:

Вы также можете посмотреть здесь: http://www.linux-usb.org/usbnet/

Лоренс
источник
Как работает метод 2? Мне не нужно активное сетевое соединение на моем компьютере?
Tyilo
Я не закончил эту часть струи. Дай мне 1 сек.
Лоуренс
4
Я думал, что время, когда люди должны использовать кроссоверные кабели, ушло навсегда :) Прямо сейчас каждая новая сетевая карта может выполнять пересечение без необходимости использования перекрестного кабеля.
Codewarrior
Вы никогда не знаете, какой у него компьютер, кроме того, вы всегда можете попробовать кабель UTP.
Лоуренс
Обычные прямые кабели Ethernet работают на PI 2, где-то читайте, чтобы его интерфейс мог это распознать. Только что протестирован на Ubuntu 16.04, RPI 2 Raspbian 2016.05.
Сиро Сантилли 新疆 改造 中心 法轮功 六四 事件