SSH: различия между версиями

Материал из Wiren Board
 
(не показано 26 промежуточных версий 5 участников)
Строка 1: Строка 1:
'''SSH''' - протокол, при помощи которого можно получить доступ к консоли Wiren Board через локальную сеть или Интернет. Смотрите [http://en.wikipedia.org/wiki/Secure_Shell описание в Википедии]. Кроме SSH, получить доступ к консоли можно поключившись напрямую к устройству через [[Debug UART]].
{{DISPLAYTITLE: Как подключиться к консоли контроллера Wiren Board по SSH }}
== Как зайти на Wiren Board по SSH ==
=== Необходимая информация ===
Чтобы зайти на устройство, вам нужно знать три вещи:
# IP-адрес устройства:
#*если ваш компьютер подключился к точке доступа, созданной контроллером, адрес будет 192.168.42.1
#*узнать IP-адрес контроллера, если он подключён к сети через Ethernet, можно либо зайдя в настройки роутера, либо зайдя в веб-интерфейс контроллера через созданную им точку доступа Wi-Fi.
# Логин пользователя: ''root''
# Пароль пользователя: ''wirenboard''


=== Установка SSH-клиента ===
== Введение ==
Для работы с SSH установите на вашем компьютере утилиту - SSH-клиент, например, PuTTY:
{{YouTube
* версия для Windows - [http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe скачать с официального сайта]
|link=https://youtu.be/VA_XHrY1RVA?feature=shared&t=500
* версия для Linux Debian или Ubuntu - выполните команду ''apt-get install putty''
|text= Работа в консоли контроллера Wiren Board 7 — SSH
}}
SSH — это протокол, при помощи которого можно получить доступ к консоли Wiren Board через локальную сеть или Интернет. Смотрите [http://en.wikipedia.org/wiki/Secure_Shell описание в Википедии].  


=== Подключение ===
Кроме SSH, получить доступ к консоли можно через [[Special:MyLanguage/Debug Console|Debug Console]].
#Запустите приложение, введите IP-адрес, убедитесь, что выбрано подключение по SSH, нажмите ''Open''.
 
#:[[Файл:Putty enter ip.png|500px]]
<gallery mode="packed" heights="120px">
#При первом подключении к контроллеру появится запрос на приём от него ключа для шифрования соединения - нажмите ''Accept''.
Image: Putty logged in.png | Консоль контроллера Wiren Board
#:[[Файл:Putty accept key.png]]
Image: Putty enter ip.png | Настройка SSH-соединения в программе PuTTY
#Когда откроется окно консоли, в нём появится запрос имени пользователя - введите ''root''; появится запрос пароля - введите ''wirenboard''.
</gallery>
#:[[Файл:Putty login.png]]
 
#Появится приветственное сообщение - вы в консоли контроллера.
== Логин и пароль ==
#:[[Файл:Putty logged in.png]]
{{note|warn|Обязательно смените пароль!}}
{{Wbincludes:Controller SSH Default Login Password}}
 
После первого логина в консоль контроллера, рекомендуем сменить пароль на более сложный, так его будет сложнее подобрать. Если вы не знаете, какой пароль выбрать, воспользуйтесь [https://bitwarden.com/password-generator/ бесплатным генератором паролей]. Если предпочитаете придумывать пароль самостоятельно, проверьте его сложность [https://bitwarden.com/password-strength/ бесплатным тестером паролей].
 
Для смены пароля в консоли контроллера ведите команду <code>passwd</code> и дважды введите новый пароль:
<syntaxhighlight lang="console">
# passwd
Enter new UNIX password:  
Retype new UNIX password:
passwd: password updated successfully
</syntaxhighlight>
 
== Подключение к SSH по ключу ==
{{note|note|Раздел не завершен.}}
Если к контроллеру есть доступ из интернета, то пароли рано или поздно могут подобрать и получить доступ к вашему контроллеру. А ещё сам факт перебора паролей приводит к сильной загрузке процессора контроллера, что сказывается на его производительности.
 
Чтобы этого избежать — рекомендуем использовать ключи доступа, один из который остаётся у вас на компьютере, а другой кладётся на контроллер.
 
=== Генерация ключа ===
Для авторизации по ключу используются два ключа — приватный и публичный.
 
Процесс генерации немного отличается в разных операционных системах. Вам будет задано несколько вопросов, можно просто нажать <kbd>Enter</kbd> для использования значений по умолчанию:
* Windows:
*:<syntaxhighlight lang="bash">
ssh-keygen
</syntaxhighlight>
*:пара ключей будет сохранена в <code>C:\Users\<ИмяПользователя>/.ssh</code>
* Linux:
*:<syntaxhighlight lang="bash">
ssh-keygen
</syntaxhighlight>
*:пара ключей будет сохранена в <code>/home/<ИмяПользователя>/.ssh/</code>
 
В паре два файла:
* id_rsa  — приватный ключ, он остаётся у вас на компьютере;
* id_rsa.pub — публичный ключ, его надо отправить на контроллер.
 
=== Загрузка ключа на сервер ===
 
== Программы ==
 
=== Windows ===
Для операционной системы Windows, используйте [[PuTTY | бесплатную программу PuTTY]].
 
=== Linux ===
В операционной системе Linux, используйте [[PuTTY | PuTTY]] или просто выполните в консоли команду:  
<syntaxhighlight lang="bash">
ssh root@192.168.42.1
</syntaxhighlight>
Где 192.168.42.1 — IP-адрес контроллера, а root — имя пользователя.
Если вы подключаетесь к контроллеру в первый раз, то система предложит принять сертификат — введите <code>yes</code>.
 
IP-адрес зависит от способа подключения и настроек контроллера. Подробнее читайте в статье [[How to find IP address|Как узнать IP-адрес контроллера]].
 
== Основные команды консоли ==
 
* <code>ls</code> — выводит список файлов.
* <code>ls -l</code> — выводит список файлов, а также права доступа, владельца и путь к оригиналу, если файл является ссылкой.
* <code>pwd</code> — выводит путь к текущему каталогу, в котором мы находимся.
* <code>cd</code> — меняет текущий каталог:
** перейти в указанный каталог:
**: <syntaxhighlight lang="bash">
cd /путь/к/каталогу
</syntaxhighlight>
**перейти на верхний уровень:
**: <syntaxhighlight lang="bash">
cd ..
</syntaxhighlight>
** перейти в домашний каталог пользователя:
**: <syntaxhighlight lang="bash">
cd ~
</syntaxhighlight >
* <code>mv</code> — перемещает файл или каталог, можно использовать и для переименования:
*: <syntaxhighlight lang="bash">
# переместить файл
mv ~/filename.txt /новый_путь/filename.txt
 
# переместить каталог
mv ~/dirname /новый_путь/dirname
 
# переименовать файл
mv ~/filename.txt ~/newfilename.txt
 
</syntaxhighlight>
* <code>rm</code> — удаляет файлы и каталоги:
*: <syntaxhighlight lang="bash">
# удалить файл
rm ~/filename.txt
 
# удалить каталог каталог со всем содержимым
rm -r ~/dirname
</syntaxhighlight>
* <code>cp</code> — копирует файлы и каталоги:
*: <syntaxhighlight lang="bash">
cp file.txt file_backup.txt
</syntaxhighlight>
* <code>cat</code> — выводит содержимое файла на экран:
*: <syntaxhighlight lang="bash">
cat file.txt
</syntaxhighlight>
* <code>mkdir</code> — создаёт один или несколько каталогов с указанным именем:
*: <syntaxhighlight lang="bash">
mkdir newdirname
</syntaxhighlight>
* <code>chmod</code> — изменяет права доступа к файлам и каталогам:
*: <syntaxhighlight lang="bash">
# использование
chmod опции /путь/к/файлу
 
# например, сделать файл исполняемым
chmod +x ~/filename.txt
</syntaxhighlight>
* <code>touch</code> — создаёт файлы любого типа:
*: <syntaxhighlight lang="bash">
touch newfilename.txt
</syntaxhighlight>
* <code>find</code> — поиск файлов, например, найдём файл interfaces в каталоге ''/mnt/data/'':
*:<syntaxhighlight lang="console">
# find /mnt/data -name "interfaces"
/mnt/data/etc/network/interfaces
</syntaxhighlight>
* <code>nano</code> — [[NanoEditor | редактор текстовых файлов]].
* <code>df</code> — показывает доступное дисковое пространство:
*:<syntaxhighlight lang="console">
# 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
 
</syntaxhighlight>
* <code>--help</code> — посмотреть справку по команде:
*: <syntaxhighlight lang="bash">
cd --help
</syntaxhighlight>
 
== Обновление прошивки ==
[[Image: screen-help.png |300px|thumb|right| Приветственный экран команды screen ]]
При подключении по SSH есть риск, что соединение будет разорвано: закрыли окно подключения, пропала связь и т.п. Поэтому важные команды, например, обновление прошивки, лучше выполнять через утилиту [https://help.ubuntu.ru/wiki/screen screen]. Утилита создаст на контроллере виртуальную сессию командной оболочки, поэтому обрыв связи не повлияет на выполнение запущенных в ней команд.
 
Утилита не входит в стандартный пакет программ, поэтому ее нужно сначала установить:
<syntaxhighlight lang="bash">
apt install screen
</syntaxhighlight>
 
Как работать:
# Запустите сеанс screen командой:
#: <syntaxhighlight lang="bash">
screen
</syntaxhighlight>
#:После подключения вы увидите приветственный экран программы, нажмите на клавиатуре <kbd>Пробел</kbd> или <kbd>Enter</kbd> — откроется виртуальная консоль, которая внешне ничем не отличается от обычной.  
# Дальше вводите нужные вам команды, а при разрыве связи достаточно будет переподключиться к контроллеру и открыть работающий сеанс командой:
#:<syntaxhighlight lang="bash">
screen -r
</syntaxhighlight>
# Для выхода из виртуальной консоли введите:
#:<syntaxhighlight lang="bash">
exit
</syntaxhighlight>

Текущая версия на 07:13, 21 июня 2024


Введение

Работа в консоли контроллера Wiren Board 7 — SSH

SSH — это протокол, при помощи которого можно получить доступ к консоли Wiren Board через локальную сеть или Интернет. Смотрите описание в Википедии.

Кроме SSH, получить доступ к консоли можно через Debug Console.

Логин и пароль

Обязательно смените пароль! Учётная запись по умолчанию: логин root, пароль wirenboard.

После первого логина в консоль контроллера, рекомендуем сменить пароль на более сложный, так его будет сложнее подобрать. Если вы не знаете, какой пароль выбрать, воспользуйтесь бесплатным генератором паролей. Если предпочитаете придумывать пароль самостоятельно, проверьте его сложность бесплатным тестером паролей.

Для смены пароля в консоли контроллера ведите команду passwd и дважды введите новый пароль:

# passwd
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

Подключение к SSH по ключу

Раздел не завершен. Если к контроллеру есть доступ из интернета, то пароли рано или поздно могут подобрать и получить доступ к вашему контроллеру. А ещё сам факт перебора паролей приводит к сильной загрузке процессора контроллера, что сказывается на его производительности.

Чтобы этого избежать — рекомендуем использовать ключи доступа, один из который остаётся у вас на компьютере, а другой кладётся на контроллер.

Генерация ключа

Для авторизации по ключу используются два ключа — приватный и публичный.

Процесс генерации немного отличается в разных операционных системах. Вам будет задано несколько вопросов, можно просто нажать Enter для использования значений по умолчанию:

  • Windows:
    ssh-keygen
    
    пара ключей будет сохранена в C:\Users\<ИмяПользователя>/.ssh
  • Linux:
    ssh-keygen
    
    пара ключей будет сохранена в /home/<ИмяПользователя>/.ssh/

В паре два файла:

  • id_rsa — приватный ключ, он остаётся у вас на компьютере;
  • id_rsa.pub — публичный ключ, его надо отправить на контроллер.

Загрузка ключа на сервер

Программы

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
    

Обновление прошивки

Приветственный экран команды screen

При подключении по SSH есть риск, что соединение будет разорвано: закрыли окно подключения, пропала связь и т.п. Поэтому важные команды, например, обновление прошивки, лучше выполнять через утилиту screen. Утилита создаст на контроллере виртуальную сессию командной оболочки, поэтому обрыв связи не повлияет на выполнение запущенных в ней команд.

Утилита не входит в стандартный пакет программ, поэтому ее нужно сначала установить:

apt install screen

Как работать:

  1. Запустите сеанс screen командой:
    screen
    
    После подключения вы увидите приветственный экран программы, нажмите на клавиатуре Пробел или Enter — откроется виртуальная консоль, которая внешне ничем не отличается от обычной.
  2. Дальше вводите нужные вам команды, а при разрыве связи достаточно будет переподключиться к контроллеру и открыть работающий сеанс командой:
    screen -r
    
  3. Для выхода из виртуальной консоли введите:
    exit