Подготовьтесь к ssh без экрана
У меня есть модель малины Pi B дома, но у меня нет экрана. Мой план - подключить его к Ethernet, а затем ssh. Но это означает, что сначала необходимо подготовить SD-карту с операционной системой (Squeeze Debian). Я вижу два пути:
-
Подготовьте SD к ОС таким образом, чтобы RPi всегда подключался к Ethernet по фиксированному IP-адресу и включал SSH-сервер.
-
Подготовьте SD к ОС, чтобы RPi подключился к сети, включил SSH-сервер, а затем передал свой IP-адрес, чтобы я мог ssh в него.
Какой из этих способов проще? И как мне это сделать? Существуют ли другие способы?
У меня есть следующие инструменты: Ubuntu 10.4, MacOS 10.5, Windows 7, но только Ubuntu имеет кардридер. К сожалению, я не могу получить доступ к таблице DHCP моего маршрутизатора, он полностью закрыт.
16 ответов
Чтобы включить ssh при запуске, выполните резервное копирование boot.rc
в загрузочном разделе на SD-изображении и замените его на boot_enable_ssh.rc
Я не знаю о вашем маршрутизаторе, но вы можете настроить его для резервирования фиксированного IP-адреса для MAC-адреса вашего Pi.
-
Скопируйте
boot_enable_ssh.rc
вboot.rc
из/boot
в корневом каталогеrootfs
(SD-карта) -
В корневом каталоге
rootfs
/etc/network/interfaces
-
Загрузите свой малиновый Pi, используйте кабель Ethernet, чтобы подключить его к той же сети, к которой подключен ваш компьютер (или подключить его непосредственно к компьютеру), и войти в систему через SSH:
auto lo eth0 iface lo inet loopback iface eth0 inet static address 192.168.0.202 netmask 255.255.255.0 gateway 192.168.0.200
-
Установите светлый VNC-сервер в свой малиновый Pi:
ssh [email protected]
-
Затем запустите сервер VNC (вам будет предложено установить пароль):
sudo apt-get install tightvncserver
-
Установите клиент VNC на свой ПК:
vncserver :1 -name RasPi -depth 16 -geometry 1024x768
-
Затем подключитесь к своей малиневой Pi через VNC с вашего ПК:
apt-get install xtightvncviewer
Он просто работает здесь таким образом:)
В текущих сборках Raspian отсутствует материал boot_enable_ssh.rc
. Вы загружаетесь, красивое графическое меню предоставляет вам некоторые параметры (включая загрузку SSHD при загрузке), а затем выгружает вас в командной строке.
Это здорово, если ... вы графический пользователь.
Если вы этого не сделаете, вы останетесь в положении, когда вам нужно каким-то образом запустить update-rc.d
. Все это действительно создает символическую ссылку на скрипт /etc/init.d/...
в разных точках в /etc/rc{0..6}.d/...
. Смущенный? Ничего! - Ущерб прост.
-
Я предполагаю, что вы делаете это с Linux-компьютера. По крайней мере, что-то с помощью bash или что-то совместимое. То, что я предлагаю, не будет работать из Windows без Cygwin (или другого). Вставьте в него SD-карту и
cd
. -
Run:
for i in 2 3 4 5; do sudo ln -s /etc/init.d/ssh etc/rc$i.d/S02ssh; done
-
Отключите и загрузите. Вы должны иметь доступ к нему через SSH.
Если вы пытаетесь найти его в своей сети ...
Три варианта для вас:
- Используйте администратор вашего маршрутизатора, чтобы найти его. Netgear особенно хорошо демонстрирует «Прикрепленные устройства».
- Подключите монитор и запустите
ifconfig
(обман!) -
Используйте
nmap
на другом компьютере для сканирования. Вы должны знать, какой IP-адрес он имеет (до /24), поэтому сканирование прост:sudo nmap -sV --open 192.168.0.0/24 -p22
Если вы используете дистрибутив Arch Linux , вы просто подключаете его и ждете его получения его адрес назначен с сервера DHCP . Затем вы можете проверить статус DHCP (например, подключившись к вашему маршрутизатору) и получить IP-адрес из списка подключенных клиентов. Если это не удается, вы можете использовать nmap
или аналогичные инструменты для сканирования всей подсети для открытого порта 22 (SSH включен по умолчанию).
Используя бета-версию Debian 7 (Wheezy), SSH установлен и включен по умолчанию. Вам просто нужно подключиться к нему через свой IP-адрес.
Существует несколько способов определить, какой IP-адрес находится в Raspberry Pi, без необходимости запускать его ifconfig
, например:
- На страницах конфигурации вашего маршрутизатора может отображаться экран с указанием IP-адресов для подключенных машин.
- У большинства смартфонов есть бесплатные сетевые сканеры Wi-Fi, которые будут отображать устройства, подключенные к сети.
Простой способ (если у вас есть только клавиатура)
SSH не включен по умолчанию в Debian Wheezy (Raspbian). Когда-то SSH был определенно не включен на мои изображения Raspbian. По-видимому, теперь SSH включен по умолчанию. Но если это не так, и вы застряли, прочитайте:
Включение этого очень просто, намного проще, чем большинство ответов, которые я видел здесь, если у вас есть USB-клавиатура:
- Подключите клавиатуру и загрузите RPi
- Подождите минуту, затем введите «pi», нажмите Enter, затем «малина» и нажмите enter.
-
Включить SSH с помощью:
sudo /etc/init.d/ssh start
-
Введите пароль «raspberry» снова на всякий случай, так как это команда
sudo
и нажмите Enter.
Теперь вы можете удалять свой RPi своим IP-адресом в своей сети.
Как сказал Денис Митропольский , утилита конфигурации упрощает настройку SSH на данный момент:
sudo raspi-config
Просто перейдите к опции «ssh». К счастью, это работает в сеансе SSH, поэтому единственная команда, которую вам нужно запустить «вслепую», является первой, которая была выше.
После массовых атак ботнета в 2016 году из-за того, что IoT-устройства легко взломали пароли по умолчанию, Raspbian снова поставляется с отключенным SSH по умолчанию ( ).
Исправление довольно простое, вам просто нужно создать файл в разделе boot
(а не в корневой файловой системе) под названием ssh
. Чтобы проверить, находится ли вы в нужном разделе, он должен иметь файл с именем start.elf
.
Не забудьте изменить свой пароль после!
Чтобы найти мой Pi в моей сети, я использовал sudo arp-scan -l
, хотя sudo nmap -sS --open -O 192.168.1.0/24
также действительный, но медленный вариант.
Нельзя сказать, работает ли SSH из коробки, но последняя версия утилиты конфигурации имеет команду «Включить SSH». После этого я смог подключиться к моей малине через сеть. Но чтобы включить его, вам нужен монитор в любом случае.
Одно предостережение: Arch Linux , это сработало для меня, только если бы я подключился к сети Ethernet до загрузки Raspberry Pi (а затем он работал нормально: sshd был включен по умолчанию). Если я сначала загружаюсь, а затем подключаю кабель Ethernet, Raspberry Pi никогда не связывается с DHCP-сервером, чтобы получить IP-адрес.
Если вы используете Debian, то довольно легко, если вы можете предоставить экран и сеть для своего RPi всего несколько минут от друга. Если нет, вы можете просто проверить команды для «nmap» и «ssh» с вашего узла Ubuntu.
Просто убедитесь, что пакет openssh-server установлен, и вы в порядке. Вы делаете это из командной строки с помощью aptitude install openssh-server
. Вы также можете проверить или переименовать RPi, когда вы вошли в систему. Вы также можете проверить, что пакет avahi-utils
и avahi-daemon
установлены, просто попробуйте aptitude install avahi-utils
.
В пакете /программе avahi будет реализовано приложение apples protocoll mDNS /DNS-SD, которое объявит о себе на других компьютерах, которые используют этот протоколл в качестве компьютера в домене DNS local
. Поэтому, если ваша машина называется rpi-machine
, попробуйте подключиться к машине с помощью rpi-machine.local
.
Вы можете проверить файл /etc/nsswitch.conf
, чтобы увидеть, есть ли у вас эта строка:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
Оба устройства Apple и Ubuntu должны реализовать это. Однако ваша машина MS Windows 7 этого не делает. На машине Ubuntu вы можете попробовать эту команду:
avahi-browse --all
или
avahi-browse _ssh._tcp
Затем вы должны получить все свои машины и их службы, такие как SSH и HTTP.
Вы также можете попробовать установить пакет nmap
на свой компьютер Ubuntu. Затем вы можете проверить, в какой сети вы находитесь, с командой ip route list
, чтобы узнать, в какой IP-сети вы находитесь. Например, на моей машине я мог бы получить что-то вроде этого (это из примера.com, поэтому не используйте его):
192.0.43.0/24 dev eth0 proto kernel scope link src 192.0.43.1 metric 1
говорит мне, что я нахожусь в сети 192.0.43.0/24
, а маршрутизатор - 192.0.43.1
. Поэтому, если вы запустите команду nmap 192.0.43.0/24
, она попытается найти все машины в вашей сети и сообщить, какие порты открыты. Посмотрите на порт 22/tcp
, так как это ssh-серверы.
Мне удалось настроить свой малиновый PI без экрана или клавиатуры, выполнив следующие шаги:
-
Загрузите последнее изображение debian-pi /raspbian-ua -netinst . Текущий код
raspbian-ua-netinst-v1.0.7.img.bz2
. Загруженный файл составляет всего около 17 МБ. -
Загрузите приложение Apple Pi Baker "и использовать это программное обеспечение для переноса изображения на карту SD
-
Вставьте SD-карту в свой PI, и через 15 минут будет установлен последний Raspbian.
-
Используя Fing iPhone App Я обнаружил IP-адрес PI, который в моем случае
192.168.1.13
. -
Теперь я могу использовать SSH для этого IP-адреса так:
# Password = raspbian ssh [email protected]
И у Voila у меня есть доступ через SSH без утомительной конфигурации.
FYI: raspbian-ua-netinst
предлагает более расширенную конфигурацию, поэтому ознакомьтесь с Readme, если вы хотите настроить некоторые из этих начальных настроек.
Нет маршрутизатора + обычный кабель Ethernet на RPI 2 Raspbian Jessie 2016-05-27 + хост Ubuntu 16.04 - 17.04
Это решение распределяет маршрутизатор и позволяет вам легко получить IP-адрес Pi.
Свяжите кабель Ethernet с ноутбуком непосредственно с Pi:
В Ubuntu 17.04 для работы эта ошибка как упоминалось в этом ответе вам сначала нужно:
sudo apt-get install dnsmasq-base
Затем откройте диспетчер сети:
nm-connection-editor
И идите:
-
+
(добавить новое соединение) - Ethernet
- Создать
- Настройки IPv4
- Метод: общий доступ к другим компьютерам
- Установите для него хорошее имя.
- Сохранить
Изнутри Pi обратите внимание, что он может нормально обращаться к Интернету через другие интерфейсы вашего хоста: Например, на моем ноутбуке Pi занимает Ethernet, но хост также подключен к Интернету через WiFi. Кабель кроссовера не требуется, если сетевая карта хоста поддерживает Auto MDI-X . Это относится к самым последним аппаратным средствам, в том числе к тестируемому в 2012 году Lenovo T430 I, который имеет «Гигабитное сетевое соединение Intel® 82579LM», которое поддержка документов для Auto MDI-X . Теперь вы также можете: Это более сжатая версия: http: //www.interlockroc.org/2012/12/06/raspberry-pi-macgyver/, о котором говорилось: https : //raspberrypi.stackexchange.com/a/4294/33424 Последовательный порт USB Еще одна альтернатива, если вы просто хотите получить оболочку на Pi, заключается в использовании последовательного кабеля . Это не использует SSH или сама сеть, а скорее более старая, более простая, более прямая, более надежная, более низкая пропускная способность, последовательный интерфейс с меньшим расстоянием. Pi не будет иметь доступ к Интернету с помощью этого метода. Вам просто нужен дешевый последовательный порт USB, как этот: https://thepihut.com/products/adafruit-usb-to-ttl-serial-cable-debug-console-cable-for-raspberry-pi Затем вы присоединяете сокеты к соответствующим последовательным выводам GPIO (TX, RX, 5V и земля)
как описано в документе: https://www.raspberrypi.org/documentation/usage/GPIO /README.md Наконец, подключите USB-разъем разъема к хост-компьютеру и получите оболочку с помощью Выход с помощью Настольные компьютеры по-прежнему имеют последовательный порт, к которому вы можете подключить напрямую провод для подключения к Pi, но они скрыты на большинстве ноутбуков, а затем нам нужен USB-адаптер, см. также: 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
.
Вот видео от Adafruit, показывающее это: https://www.youtube.com/смотреть? v = zUBPeoLW16Q
Один из лучших способов подключения после первоначальной конфигурации - это запустить avahi-daemon на Raspberry Pi.
Как только вы установили avahi-daemon на малиновый Pi и Bonjour на главном компьютере вы можете просто войти в систему, используя raspberrypi.local в качестве имени хоста. Таким образом, нет необходимости настраивать IP-адрес , как статический, так и динамический.
Чтобы установить avahi-daemon на Raspberry Pi:
sudo apt-get update
sudo apt-get install libnss-mdns
И если у вас есть iTunes , установленный на главном компьютере, просто введите raspberrypi .local в PuTTY , иначе установите Bonjour из здесь . Для получения дополнительной информации просмотрите этот учебник .
Вы можете попробовать raspbian-ua-netinst
: , вы можете найти его, щелкнув здесь Это минимальный автономный сетевой пульт Raspbian для малины Pi Models 1B, 1B + и 2B. Не требуется экран или клавиатура.
Они имеют отличное руководство по установке в README.md
.
По сути, вы просто FAT-формат SD-карты. Разархивируйте последнюю стабильную версию и вставьте SD-карту в свой малиновый пи. Для установки минимальной установки Raspbian требуется около 20-30 минут, и тогда вам хорошо идти. Поставляется с SSH, установленным по умолчанию. Есть несколько вариантов, которые позволяют устанавливать дополнительные пакеты и файлы во время начальной установки. Вы также можете добавить пакеты позже, очевидно.
Для Raspbian я нашел этот учебник очень полезным. После выполнения шагов, описанных в нем, я смог SSH с моего ноутбука с Windows 10 до моего малинового PI с помощью пользователя pi
и password raspberry
.
Более конкретно, вот соответствующая часть:
Убедитесь, что малина Pi выключена, и удалите SD-карту.
Вставьте SD-карту в устройство для чтения карт и подключите его к ноутбуку.
Найдите диск, и вы должны найти несколько файлов на Карте (обратите внимание, что это намного меньше, чем вы ожидаете, поскольку это только раздел загрузки карты (остальное скрыто)).
Сделайте копию cmdline.txt и переименуйте его cmdline.normal
Измените cmdline.txt и добавьте IP-адрес в конец (убедитесь, что вы не добавили лишних строк).
Для сетевых настроек, где IP-адрес получается автоматически, используйте адрес в диапазоне 169.254.X.X (169.254.0.0 â € " 169.254.255.255):
ip=169.254.0.2
Для сетевых настроек, в которых установлен IP-адрес, используйте адрес который соответствует адресу ноутбука /компьютеров, за исключением последней цифры.
ip=192.168.0.2
Убедитесь, что вы принимаете к сведению этот IP-адрес (он вам понадобится каждый раз вы хотите напрямую подключиться к малине Pi).
Создайте новую копию cmdline.txt и переименуйте ее cmdline.direct
Чтобы выполнить обмен между конфигурациями, просто замените cmdline.txt либо на cmdline.normal, либо на cmdline.direct (или используйте команды в опции 2, чтобы сделать это непосредственно на Малиновой Пи - изменение вступит в силу при следующем включении)
Верните карточку в малиновый пи. Присоедините сетевой кабель, подключенный к компьютеру, и к малине Pi и включите питание.
ПРИМЕЧАНИЕ СЛЕДУЮЩЕЕ:
Вам нужно будет дождаться, пока ваш компьютер завершит обнаружение сетевых настроек (вы можете заметить, что в вашей в системном трее, когда он работает, или откройте сетевые настройки, чтобы увидеть, когда он закончил и имеет IP-адрес) - он может занять около 1/2 минута. Ваш компьютер может сообщить о соединении как «ограниченный» или «нет». соединение "при подключении к малине Pi таким образом, это как указано, это прямой компьютер для подключения к компьютеру а не стандартная сеть.
Если вы забыли или решили не подключать сетевой кабель, малина Pi будет ждать 2 минуты (или пока вы не подключите кабель) перед завершением его запуска (так что если у вас есть только клавиатура и монитор подключен, вам нужно подождать!).
Если вы используете несколько сетевых сетевых адаптеров (например, с помощью дополнительного ключа USB-LAN) на своем компьютере, вы можете обнаружить, что вам нужно отключить другой сетевой кабель и снова подключить (моя машина Windows XP нужно было это, прежде чем он соединился бы по прямой ссылке).
Поскольку у меня был другой Pis, с которым я мог подключаться , я обманул.
Я взял карту Micro SD из Pi, которая не позволяла мне подключаться, и поместить ее в USB-ридер на одном из рабочих Pis.
Затем я установил его в тестовую папку (sudo mount /dev/sda2 /mnt/test
), затем chroot /mnt/test
, чтобы рассматривать его как новый оболочки.
Затем я включил SSH с помощью systemctl enable ssh
. Вытащив карту после размонтирования, загрузив Pi, порт SSH был открыт и доступен.
Работает на Debian, я уверен в других системах стиля systemd
.