Персональный сайт Федоренко Александра Суббота, 18.05.2024, 20:23
Приветствую Вас Гость | RSS
Меню сайта

Категории раздела
CentOS [5]
Asterisk [16]
Elastix [4]
Виртуализация [3]
Raspberry Pi [5]
Статьи по настройке и использованию Raspberry Pi

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » LINUX » Raspberry Pi

RaspberryPi – быстрый старт: Продолжаем настройку SSH‏

Настройка удаленного доступа, часть вторая

 
В предыдущем выпуске рассылки было показано, как настроить удаленный доступ к Raspberry PI через SSH. В этом выпуске – настройка VNC, повышение защищенности доступа, и настройка роутера для доступа к RPI извне.
 
Настройка VNC

Virtual
 Network Computing (VNC) — система удалённого доступа к рабочему столу компьютера, использующая протокол RFB (англ. Remote FrameBufferудалённый кадровый буфер). Управление осуществляется путём передачи нажатий клавиш на клавиатуре и движений мыши с одного компьютера на другой и ретрансляции содержимого экрана через компьютерную сеть.  VNC  позволит не просто получить доступ к рабочему столу, а получить доступ именно к той сессии, которую видит пользователь, непосредственно сидящий перед Raspberry.
Для такого доступа нужно установить на Raspberry VNC  сервер x11vnc. Это можно сделать либо через графический менеджер пакетов Synaptic, либо набрав в консоли команду
sudo apt-get install x11vnc.
 
На компьютере, с которого предполагается организовать подключение, нужно установить VNC viewer.
Запускаем на RPI x11vnc сервер (он находится в меню интернет), нажимаем «ОК» в первом окне,  отмечаем  «Accept Connection» и снова «ок». Впрочем, можно и в терминале набрать x11vnc.
Теперь нужно сделать дополнительную настройку в Putty. В  Connection – SSH - Tunnels нужно добавить проброс порта 5900. Для этого вводим Source port 5900, Destination : localhost:5900 и нажимаем кнопку Add.



Сохраняем настройки в сессии и подключаемся. После этого запускаем VNC-Viewer.
Подключаемся к серверу localhost:5900
 



и видим свой рабочий стол.

 
Автоматический запуск x11 при подключении ssh

Raspberry Pi не самый мощный компьютер, и не стоит его напрасно  нагружать редко используемыми приложениями. Поэтому сделаем так, что бы сервер X11 запускался только при подключении ssh.
Для этого в настройках putty  в меню Connection – SSH надо добавить команду  для удаленного компьютера:
x11vnc -localhost



Сохраняем настройки в сессии и подключаемся. На Raspberry Pi автоматом запускается X11 сервер. После этого запускаем VNC-Viewer и подключаемся к серверу localhost:5900.
 
Настройка доступа с помощью ключа

Если вы планируете обеспечить доступ к RPI снаружи локальной сети, будет очень правильно отключить авторизацию по паролю и использовать авторизацию с открытым ключом. Установку ключа будем делать через SSH, так что предварительно нужно убедиться, что SSH работает.

Создание ключа

Ключ состоит из двух частей  - публичной и приватной. Генерацию ключа нужно выполнить на той машине, с которой осуществляется доступ, и сохранить потом публичный ключ в Raspberry.
Для генерации ключа воспользуемся программой puttygen.
Сохраняем программу. Запускаем, нажимаем кнопку Generate. После этого потребуется некоторое время беспорядочно водить мышкой по экрану, пока ползунок не добежит до конца.



Добавляем пароль к этому ключу и сохраняем публичный и приватный ключи в надежном месте. (Впрочем, пароль необязателен, это еще один уровень безопасности).

Настройка доступа по ключу в Распберри

Для настройки доступа понадобится подключиться к RPI через SSH и набрать в терминале несколько команд.

  • Переход к home директрии текущего пользователя
    Cd ~
  • Создание директории .ssh, где будет хранится публичный ключ. Обратите внимание на точку, она нужна
    mkdir .ssh
  • Переход  в директорию .ssh
    cd .ssh
  • Запуск редактора и создание файла authorized_keys с ключом
    nano authorized_keys
  • Теперь нужно скопировать целиком публичный ключ из окна генератора и вставить его в редактор. Для тех, кто мало работал с терминалом и редактором nano – клик правой кнопкой мыши вставляет содержимое буфера обмена, Ctrl-O сохраняет файл (после этого надо нажать Enter для подтверждения). И Ctrl-X  - выход из редактора.
  • Установка прав доступа для файла и директории так, что бы никто не смог ничего сделать с ними за исключением владельца
    chmod 700 ~/.ssh/
    chmod 600 ~/.ssh/authorized_keys

 

Настройка ssh клиента для работы с приватным ключом

В дистрибутиве Raspbian по умолчанию разрешена авторизация и по паролю, как мы делали в прошлый раз и по публичному ключу. Поэтому, после того как вы убедитесь, что доступ по ключу работает, стоит отключить авторизацию по паролю.
Откроем новую сессию в Putty, что бы убедиться, что авторизация по ключу работает. Для этого загрузим уже настроенную конфигурацию. В меню Connection-SSH-Auth добавим свой приватный ключ. Сохраним конфигурацию сессии и попробуем подключиться.



Если подключение заработало, можно повысить безопасность подключения, отключив авторизацию по паролю и изменив порт подключения, как это описано далее. 

Повышение уровня безопасности соединения

Для решения этой задачи нам потребуется отредактировать файл конфигурации ssh.

  • Запускаем редактор
    sudo nano /etc/ssh/sshd_config
  • Находим строчку
    #PasswordAuthentication yes
  • Удаляем символ комментариев и меняем значение на no
    PasswordAuthentication no
  • Меняем номер порта на новый – случайное число до 65535 (желательно, не пересечься с каким нибудь уже существующим сервисом)
    Port 22 на, например, Port 777
  • Сохраняем изменения, и перезагружаем либо ssh сервер, либо Raspberry Pi
    sudo /etc/init.d/ssh restart
    или
    sudo reboot

Можно пробовать подключиться, не забыв поменять номер порта в конфигурации Putty.
 
Настройка роутера

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

  • Находим меню NAT в настройках роутера.
  • Нажимаем  Virtual Server
  • Добавляем виртуальный сервер примерно как на картинке. По сути нам надо сделать так, что бы при запросы на определенные порты внешнего IP  транслировались на те же порты Raspberry PI внутри сети. Достаточно только 22 (или того, который был настроен в предыдущем пункте) порта для SSH.




 
Доступ к Raspberry Pi извне
 
Сделав настройки роутера и зная свой внешний IP адрес, не составит труда подключиться к Raspberry Pi из любой точки мира. Для этого достаточно заменить внутренний IP адрес в настройках сессии Putty на внешний. Вот только, к сожалению, у большинства домашних компьютеров адреса динамические и постоянно  меняются.
Поэтому в следующем выпуске, в качестве разминки для мозга, как написать и запустить скрипт, который будет регулярно отсылать на email письмо с внешним IP адресом, который можно будет использовать для доступа к Raspberry Pi. И описание процесса подключения к одному из бесплатных сервисов работы с динамическими DNS.

Категория: Raspberry Pi | Добавил: AFed (26.01.2015)
Просмотров: 1856 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск

Copyright MyCorp © 2024Создать бесплатный сайт с uCoz