Початкові налаштування без монітора чи клавіатури


10

Подібне питання було задано і раніше: Як налаштувати Raspberry Pi без монітора?

Однак, враховуючи, що прийнята відповідь, як видається, не пропонує відповідного рішення, і враховуючи, що в заданому питанні є рівень неоднозначності, я припускаю, що початкове питання було неправильно побудовано, і що моє питання не відповідає ' t точний дублікат.

Я виконую початкову, першу постановку Pi. У мене немає монітора чи клавіатури, але натомість я хочу використовувати підключений ноутбук, щоб виконати цю роботу. Я не хочу купувати монітор або клавіатуру, і вони мають сидіти навколо лише для тих випадків, коли вони потрібні Пі. Я міг би позичити їх, але в майбутньому я планую купувати більше Pi, і не хочу кожного разу позичати їх.

Я встановив статичну IP-адресу на Pi, редагуючи cmdline.txtфайл. (У Pi працює найновіша версія програми Raspbian.)

ip=10.0.0.20

Я дав ethінтерфейсу на своєму ноутбуку відповідну статичну IP-адресу. (У ноутбуці працює Ubuntu.)

ip ad add 10.0.0.10/24 dev eth0

Я з'єднав їх двома разом з кабелем Ethernet і можу успішно пропрасувати Pi з мого ноутбука.

Що я не можу зробити - sshце Пі. Я отримую відповідь про відмову у зв’язку:

richard@richard-ThinkPad-X220:~$ ssh -vvv pi@10.0.0.20
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 10.0.0.20 [10.0.0.20] port 22.
debug1: connect to address 10.0.0.20 port 22: Connection refused
ssh: connect to host 10.0.0.20 port 22: Connection refused

Одне, що це означає, це те, що sshdвін ще не працює на Пі.

Офіційні документи стверджують , що sshdзапускається за замовчуванням, але це можливо , що під час початкового завантаження , що і інші речі (наприклад , підказки , які очікують введення даних користувачем) може блокувати завантаження на певному рівні, тобто ми не досягнемо точки , в якій sshdпочалося це ?

Куди я їхати звідси? (Не "до магазинів купувати монітор" ...)

Чи те, що я намагаюся, насправді можливо?

Редагувати:

Зараз я спробував методи, згадані у відповідях на наступний пост, але без успіху: Увімкнути SSH на RPi без екрана - натискання клавіш для raspi-config?

Зокрема, те, що сценарій init SSH запускається на рівні 2, все ще не дозволив мені підключитися.


Якщо припустити, що ви пінг Пі і він працює недавно Raspbian, то він повинен працювати. Єдина альтернатива, яку я можу запропонувати, - це увійти через UART на штифтах 8 та 10. Для цього потрібні дроти та послідовний USB-послідовний USB-ключ 3V3.
Жанна

Встановлення статичних адрес лише ускладнює проблему. Якщо ви з цим не поспілкувались, вам слід мати змогу зв’язатися з ssh pi@raspberrypi.localвами. Ви, здається, не думаєте говорити нам, як ви насправді намагаєтесь ssh.
Міллівейс

Я спробував видалити статичну IP-адресу з конфігурації Pi та спробував ping pi@raspberrypi.local. Але це не працює, оскільки raspberrypi.localневідомий хост. Чи не потрібен був би запис /etc/hostsна моєму ноутбуці, щоб мати змогу вирішити це?
Річард Хоррокс

Дайте мені знати, які додаткові подробиці щодо того, як я пропоную SSHing, і я з радістю надам їх - вибачте, якщо чогось не буде. Дякую за пропозиції поки що :)
Річард Хоррокс

1
Можна запустити sudo nmap 10.0.0.20на ноутбуці. Якщо він показує, що порт 22 відкритий, SSH працює, інакше він не працює. Це не виправить, але він підкаже, що відбувається.
garethTheRed

Відповіді:


5

В офіційних документах зазначено, що sshd працює за замовчуванням

Щодо останнього зображення, яке я маю, 2015-11-21-raspbian-jessie- lite .img, це неправда. Debian / Raspbian jessie в даний час використовує systemd для init, але вбудований якийсь гібридний зворотний-SysV-сумісний механізм, і я помічаю в створеній системою, створеній із цього зображення (використовуючи екран та клавіатуру для початкової настройки), де тепер увімкнено sshd, є і тригер, і в системному, і в старому rc.dкаталогах SysV . Імовірно, таким чином працює механізм, сумісний із зворотним ходом (я включив ssh через systemd). У будь-якому випадку, існує лише один sshdекземпляр із запущеним PPID.

Для робочої системи є запис /etc/rc[2,3,4,5].dдля S02ssh(точний номер пріоритету, 02, встановлюється, коли послуга включена і може змінюватися). Також є /etc/systemd/system/multi-user.target.wants/ssh.service.

Однак у базовому зображенні ...

... Немає жодного запису, /etc/systemdа K01sshдля запуску рівнів 2, 3, 4, 5. Це майже гарантує, що sshd не працює.

Моя пропозиція - спершу спробувати встановити лише запис SysV. З etcкаталогу другого розділу на SD-карті:

for i in 2 3 4 5; do \
ln -s ../init.d/ssh rc$i.d/S02ssh; \
rm rc$i.d/K01ssh \
done

Переконайтесь, що посилання там є, і вони вказують на потрібне місце stat. Я вважаю, що цього має бути достатньо, і тепер ви можете спробувати завантажувати систему. Якщо це так, після того, як ви ввійдете, видаліть ці посилання та запустіть systemctl enable ssh, а потім перевірте, чи відтворено посилання (пам’ятайте, пріоритет може бути іншим).

Якщо ви все ще отримуєте «З'єднання відмовився», створити зв'язок з [SD_rootfs]/lib/systemd/system/ssh.serviceдо [SD_rootfs]/etc/systemd/default.target.wants/ssh.serviceі спробувати ще раз.


Дякуємо за дуже детальну інструкцію. Я помітив K01sshу rc2.dдовіднику і перейменував його, але не помітив інших в інших rcкаталогах. Видалення тих, хто використовує ваш сценарій, на жаль, не допомогло. (Я перевірив, що вони створені, як ви запропонували.) Для другого методу у мене немає ssh.serviceзапису в etc/systemd/system/multi-user.target.wants/каталозі, і lib/systemd/system/каталог недоступний. Система навіть не може сказати, що це каталог (і запуск fileдає мені: ERROR: cannot open lib / systemd / system '(помилка вводу / виводу) `).
Річард Хоррокс

Зауважте, що я використовую не зображення Lite, а повноцінне зображення тієї ж дати, як і ви.
Річард Хоррокс

Подивіться на каталоги init, згадані вище, на картці. Ви повинні мати змогу сказати, включено чи ні. Якщо це так, виправте IP + ssh запуск! = "З'єднання відмовлено", тому щось десь пішло не так, і вам доведеться знайти екран та клавіатуру, щоб його діагностувати. По черзі (або добре) ви можете використовувати щось на зразок дроту, щоб побачити, які пакети йдуть вперед і назад; це однозначно доведе до того, що відбувається в мережі.
золотинки

Гаразд, поскакав з Wireshark, але нікуди не дістався. Тоді вирішили записати образ Lite і спробувати це. Я помітив, що systemdфайли, про які ви згадали, були присутніми, тому спробували вашу другу пропозицію, яка спрацювала :) Не впевнені, чому між зображеннями все було інакше, але це могло би моє злому, що вплинуло на щось на першому зображенні. (Я не маю уявлення за що ...) Дуже дякую за вашу допомогу.
Річард Хоррокс

Для повноти я спробував ще раз зі свіжим повноцінним зображенням Джессі, спаленим на іншій SD-картці, але знову lib/systemd/system/каталог був недоступним. Те саме стосується зображення Wheezy. Лише зображення Lite дозволило мені отримати доступ до каталогу і тому виконати інструкції.
Річард Хоррокс

11

Для тих із вас, хто стикається з цим із новішими зображеннями Raspbian: є системна sshwitchціль, яка перевіряє наявність /boot/ssh, і якщо цей файл присутній, він відновлює ключі хоста SSH та дозволяє SSH-сервер.

Отже, щоб увімкнути SSH, просто додайте файл, названий sshу корені завантажувального розділу (FAT, з bootcode.binфайлом) та завантажте Pi!

Редагувати: це працювало на моєму зображенні 2017-01-11-raspbian-jessie-lite.


Це добре працює. Якщо вам зручна клавіатура, введіть: pi <enter> raspberry <enter> sudo touch / boot / ssh <enter> sudo reboot <enter>, а потім спостерігайте за маршрутизатором, коли пристрій отримує ip, потім ssh pi @ <thatip> і ви відчуєте себе хакером.
Нуреттін

1

Вибачте за те, що це відповідь, але не є одним із кредитів лише для коментарів.

Чи працює служба ssh? Якщо це можливо, і це одне із зображень встановлення малини, спробуйте raspi-config лише для того, щоб увімкнути ssh.

Інший спосіб, перевірте, чи завантажено та включено ssh

sudo service --status-all|grep ssh

Можливо, ssh-порт 22 відхиляє з'єднання, оскільки служба не готова


1
У поточних версіях raspbian ви, мабуть, хочете використовувати systemctl --list-units | grep ssh(або ще краще інформативніші systemctl status ssh). Але ви по суті правильні, "З'єднання відмовлено" означає, що нічого не слухається на порту. Якщо ssh працює, то IP невірний.
золотинки

2
Дякую за відповідь. Проблема вашої пропозиції полягає в тому, що я не можу запустити команду, тому що я не можу отримати доступ до Pi для її запуску. Курка і яйце. :( Я знаю, що IP-адреса правильна, тому що я можу пінг-код (і я не знаю, що більше нічого в мережі не має тієї самої адреси).
Річард Хоррокс

1

https://www.raspberrypi.org/blog/a-security-update-for-raspbian-pixel/ Посилання на операційну систему Rasbian PIXEL.


Схоже, це ніяк не відповідає на питання.
Jacobm001

Хоча корисна інформація є лише за посиланням (а не у відповіді відповіді, де це має бути), це принаймні офіційна документація raspberrypi.org та розділ "Що змінилося?" на пов'язаній сторінці детально викладені проблеми безпеки, які спричинили необхідні зміни (тобто відключення ssh за замовчуванням), та детально /boot/sshвиправлено.
Роберто Тілей

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.