SSH: различия между версиями
(→Запрет авторизации по паролю: Поправил) |
|||
Строка 2: | Строка 2: | ||
== Введение == | == Введение == | ||
{{ | {{PeerTube | ||
|link=https:// | | link= https://peertube.wirenboard.com/video-playlists/embed/6623c76e-1abe-4728-959c-f5dde919d80c?playlistPosition=4 | ||
|text= Работа в консоли контроллера Wiren Board | | playlist = true | ||
| text= Работа в консоли контроллера Wiren Board — SSH | |||
}} | }} | ||
SSH — это протокол, при помощи которого можно получить доступ к консоли Wiren Board через локальную сеть или Интернет. Смотрите [http://en.wikipedia.org/wiki/Secure_Shell описание в Википедии]. | SSH — это протокол, при помощи которого можно получить доступ к консоли Wiren Board через локальную сеть или Интернет. Смотрите [http://en.wikipedia.org/wiki/Secure_Shell описание в Википедии]. | ||
Текущая версия на 20:42, 26 августа 2024
Введение
SSH — это протокол, при помощи которого можно получить доступ к консоли Wiren Board через локальную сеть или Интернет. Смотрите описание в Википедии.
Кроме SSH, получить доступ к консоли можно через Debug Console.
Логин и пароль
Смените стандартный пароль! Для удалённого доступа к контроллеру используйте Wiren Board Cloud. Если всё же надо получить прямой доступ по IP-адресу: используйте авторизацию к SSH по ключу, обязательно защитите веб-интерфейс и MQTT-брокер сложным паролем, а также проверьте, что нет других проблем безопасности.
Учётная запись по умолчанию: логин root, пароль wirenboard.
После первого логина в консоль контроллера, рекомендуем сменить пароль на более сложный, так его будет сложнее подобрать. Если вы не знаете, какой пароль выбрать, воспользуйтесь бесплатным генератором паролей. Если предпочитаете придумывать пароль самостоятельно, проверьте его сложность бесплатным тестером паролей.
Для смены пароля в консоли контроллера ведите команду passwd
и дважды введите новый пароль:
# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Подключение к SSH по ключу
Если к контроллеру есть доступ из интернета, то пароли рано или поздно могут подобрать. А ещё сам факт перебора паролей приводит к сильной загрузке процессора контроллера, что сказывается на его производительности.
Чтобы этого избежать — рекомендуем использовать ключи доступа, один из которых остаётся у вас на компьютере, а другой отправляется на контроллер.
Кроме этого SSH-ключи можно использовать при подключении к контроллеру через Wiren Board Cloud. Технически это ничем не отличается от подключения с компьютера с той лишь разницей, что после генерации ключа и его загрузки в контроллер, приватный ключ надо будет загрузить в облако на специальной странице.
Генерация ключа
Для авторизации по ключу нам понадобятся приватный и публичный ключи. Процесс генерации немного отличается в разных операционных системах. В процессе будет задано несколько вопросов, можно просто нажать на клавиатуре Enter для использования значений по умолчанию.
Компьютер с Windows:
- Откройте Power Shell.
- Введите команду
ssh-keygen
- пара ключей будет сохранена в
C:\Users\<ИмяПользователя>/.ssh
Компьютер с Linux:
- Откройте командную строку.
- Введите команду
ssh-keygen
- пара ключей будет сохранена в
/home/<ИмяПользователя>/.ssh/
В паре два файла:
- id_rsa — приватный ключ, он остаётся у вас на компьютере;
- id_rsa.pub — публичный ключ, его надо отправить на контроллер.
Загрузка ключа на сервер
После того, ка мы сгенерировали ключи, загрузим публичный ключ на контроллер. Процедура немного отличается в разных операционных системах.
Ниже мы отправим публичный ключ id_rsa.pub
на контроллер с адресом 192.168.42.1 и логином для подключения root. В процессе будет предложено ввести пароль от учётной записи на контроллере.
Компьютер с Windows:
- Откройте Power Shell.
- Введите команду:
type $env:USERPROFILE\.ssh\id_rsa.pub | ssh root@192.168.42.1 "cat >> .ssh/authorized_keys"
Компьютер с Linux:
- Откройте командную строку.
- Введите команду
ssh-copy-id root@192.168.42.1
Запрет авторизации по паролю
Это полезно сделать, чтобы у злоумышленников не было возможности подбирать пароль. Убедитесь, что у вас есть доступ к консоли контроллера без пароля.
Чтобы отключить проверку пароля при подключении по SSH:
- Подключитесь к контроллеру по SSH.
- Откройте файл конфигурации:
nano /etc/ssh/sshd_config
- Измените параметр PasswordAuthentication с yes на no:
PasswordAuthentication no
- Измените параметр PubkeyAuthentication с no на yes:
PubkeyAuthentication yes
- Нажмите Ctrl+S для сохранения изменений, Ctrl+X — для выхода из редактора.
Теперь к контроллеру подключиться по SSH можно будет только с компьютера, на котором есть приватный ключ. Процесс подключения ничем не отличается от обычного, кроме того, что пароль больше не будет запрашиваться. Если вам надо иметь доступ к контроллеру с нескольких компьютеров — скопируйте на них приватный ключ, или повторите на них процедуру генерации и добавления новых ключей.
Если вы отключили доступ по паролю и потеряли приватный ключ, включите его снова через Debug Console.
Программы
Windows
Для операционной системы Windows, используйте бесплатную программу PuTTY.
Linux
В операционной системе Linux, используйте PuTTY или просто выполните в консоли команду:
ssh root@192.168.42.1
Где 192.168.42.1 — IP-адрес контроллера, а root — имя пользователя.
Если вы подключаетесь к контроллеру в первый раз, то система предложит принять сертификат — введите yes
.
IP-адрес зависит от способа подключения и настроек контроллера. Подробнее читайте в статье Как узнать IP-адрес контроллера.
Основные команды консоли
ls
— выводит список файлов.ls -l
— выводит список файлов, а также права доступа, владельца и путь к оригиналу, если файл является ссылкой.pwd
— выводит путь к текущему каталогу, в котором мы находимся.cd
— меняет текущий каталог:- перейти в указанный каталог:
cd /путь/к/каталогу
- перейти на верхний уровень:
cd ..
- перейти в домашний каталог пользователя:
cd ~
- перейти в указанный каталог:
mv
— перемещает файл или каталог, можно использовать и для переименования:# переместить файл mv ~/filename.txt /новый_путь/filename.txt # переместить каталог mv ~/dirname /новый_путь/dirname # переименовать файл mv ~/filename.txt ~/newfilename.txt
rm
— удаляет файлы и каталоги:# удалить файл rm ~/filename.txt # удалить каталог каталог со всем содержимым rm -r ~/dirname
cp
— копирует файлы и каталоги:cp file.txt file_backup.txt
cat
— выводит содержимое файла на экран:cat file.txt
mkdir
— создаёт один или несколько каталогов с указанным именем:mkdir newdirname
chmod
— изменяет права доступа к файлам и каталогам:# использование chmod опции /путь/к/файлу # например, сделать файл исполняемым chmod +x ~/filename.txt
touch
— создаёт файлы любого типа:touch newfilename.txt
find
— поиск файлов, например, найдём файл interfaces в каталоге /mnt/data/:# find /mnt/data -name "interfaces" /mnt/data/etc/network/interfaces
nano
— редактор текстовых файлов.df
— показывает доступное дисковое пространство:# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/root ext4 980M 818M 95M 90% / devtmpfs devtmpfs 239M 0 239M 0% /dev tmpfs tmpfs 248M 0 248M 0% /dev/shm tmpfs tmpfs 99M 1.2M 98M 2% /run tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock /dev/mmcblk0p6 ext4 4.7G 1.9G 2.7G 41% /mnt/data tmpfs tmpfs 50M 0 50M 0% /run/user/0
--help
— посмотреть справку по команде:cd --help
Обновление прошивки
При подключении по SSH есть риск, что соединение будет разорвано: закрыли окно подключения, пропала связь и т.п. Поэтому важные команды, например, обновление прошивки, лучше выполнять через утилиту screen. Утилита создаст на контроллере виртуальную сессию командной оболочки, поэтому обрыв связи не повлияет на выполнение запущенных в ней команд.
Утилита не входит в стандартный пакет программ, поэтому ее нужно сначала установить:
apt install screen
Как работать:
- Запустите сеанс screen командой:
screen
- После подключения вы увидите приветственный экран программы, нажмите на клавиатуре Пробел или Enter — откроется виртуальная консоль, которая внешне ничем не отличается от обычной.
- Дальше вводите нужные вам команды, а при разрыве связи достаточно будет переподключиться к контроллеру и открыть работающий сеанс командой:
screen -r
- Для выхода из виртуальной консоли введите:
exit