SSH для зручного захищеного доступу до Raspberry Pi
User Rating: / 13
PoorBest 
There are no translations available.

SSH доступ к Raspberry Pi

Інтернет - вороже навколишнє середовище і безпека є обов'язком кожного, тому, якщо Ви підключаєтеся через відкритий Інтернет, рекомендуємо скористатися SSH (Secure Shell).
Встановити з’єднання SSH можна з PuTTY - програмою, яка дозволяє працювати на віддаленому Raspberry та інших комп’ютерах з ОС Linux з комп'ютера Windows PC, що особливо важливо, беручи до уваги кількість користувачів останньої ОС.
Підготовка та встановлення
Все, що Вам потрібно, це підключити до Raspberry Pi живлення та Інтернет.
Спочатку нам необхідно дізнатися IP-адресу Raspberry Pi, бо вона зазвичай надається динамічно через DHCP. Звичайно, вона Вам вже відома, якщо Ви встановили статичну IP-адресу.
Однак, при динамічній адресації маршрутизатор наступного разу може призначити іншу IP-адресу. Це проблема, тому для того, щоб підключитися через SSH, ми повинні знати IP-адресу Raspberry Pi у Вашій локальній мережі. Ми не зможемо побачити її, якщо не матимемо моніторингу приєднаних пристроїв. Необхідне сканування мережі, щоб знайти IP-адресу Raspberry Pi.
Звичайно, ми можемо дізнатися IP-адресу Raspberry Pi, увійшовши в маршрутизатор і побачивши, які пристрої підключені. Але є простіший спосіб: за допомогою чудового безкоштовного інструмента під назвою Advanced IP Scanner. Завантажити його можна з radmin.com.
Коли Ви запустите IP Scanner, то побачите екран, схожий на наведений нижче. Натисніть кнопку Сканувати (Scan):
SSH Pi 1
Серед відображених приєднаних до мережі пристроїв Ви без проблем знайдете свій Raspberry Pi та його IP–адресу.
На наступному кроці переконайтеся, що сервер SSH на Raspberry Pi працює. Для цього введіть в терміналі сесії команду:
sudo service ssh status
Якщо сервер SSH запущений, то Ви повинні отримати відповідь, що послуга sshd працює. Якщо це не так, то введіть в термінальному сеансі:
sudo raspi-config
Запуститься утиліта конфігурування Raspbian, яка входить в дистрибутив. Виберіть пункт меню для SSH, а потім виберіть дозвіл на включення сервера SSH. Перезавантажте Raspberry Pi.
Для використання основних можливостей PuTTY доступні для завантаженння з сайту PuTTY п'ять файлів:
PuTTY.exe - клієнт Secure Shell
PuTTYgen.exe - генератор публічного/приватного ключів SSH
Pagent.exe - агент аутентифікації, зберігає ключі в пам’яті і при його використанні не треба щоразу вводити ключову парольну фразу
PSCP.exe – для захищеного копіювання з командного рядка
PSFTP.exe – для захищеного копіювання з FTP-подібним інтерфейсом
В даній статті ми скористаємося першими трьома, а використання останніх двох файлів розглянемо в наступній статті.
Для уникнення проблем при встановленні, переконайтеся, що каталог встановлення знаходиться в шляху для команди.
У Windows 7 клацніть правою кнопкою миші на Комп'ютер в меню Старт і виберіть пункт Властивості. Внизу вікна натисніть кнопку Параметри середовища. Відкриється діалогове вікно:
SSH Pi 2
Завжди існує змінна Path в розділі Системні змінні, а іноді також і в розділі Змінні середовища користувача.  Лише адміністратори мають доступ до системних змінних, щоб змінити або додати Path, при необхідності.
Ми поставимо нову папку типово на початку шляху і вона буде відокремлена від решти частини списку комою. Натисніть OK, щоб зберегти всі зміни.
Встановлення PuTTY не має особливостей. Після закінчення встановлення створіть ярлик на робочому столі, бо зазвичай ця програма часто використовується. В нашому випадку, шлях в ярлику до виконуваного файлу C:\Bin\putty.exe.
Запуск PuTTY та налаштування для цільової системи
• Сесія:
Ім'я вузла (Host Name) : ім’я вузла, наприклад, dbserver, або IP-адреса віддаленого комп’ютера
Протокол (Protocol): SSH
• З'єднання: Дані (Data)
Користувач з автологіном: наприклад, steve
• З'єднання: SSH
Віддати перевагу SSH протоколу версії: тільки 2
• Вікно: Переклад (Translation)
За замовчуванням встановлено ISO-8859-1, тому повинні відкрити список і вибрати UTF-8.
SSH pi 3
Вводимо відповідні дані, зберігаємо сесію (Save) і натискуємо Open, щоб відкрилося вікно авторизації, і для входу використовуємо ім’я і пароль користувача (за замовчуванням для Raspberry: pi і raspberry)
SSH-Pi 4
При доступі до декількох віддалених систем можна створити і використовувати декілька сеансів, відповідним чином відредагувавши ярлики запуску збережених сеансів. Для цього клацніть правою кнопкою миші на ярлику і виберіть Властивості, потім введіть параметр -load разом з ім'ям сесії (у лапках, якщо необхідно):
SSH Pi 5
Для роботи в термінальному режимі будуть корисними такі команди:
man (manual) команда – видає докладну допомогу по команді;
ls (list) - список файлів;
ls -lha - показує всі файли (включаючи приховані ), розмір файлів, права на них, дату останньої зміни;
ls -lha | less - дозволить переглядати файли посторінково (якщо їх багато);
mv (move) - перейменувати, перенести;
cp (copy) - скопіювати;
rm (remove) - видалити;
> - очищення файлу. Цю команду можна застосовувати до лог-файлів. Якщо почистити файли з директорії /site/Ваш_домен/log/ наступним чином:
> access.log
> error.log
> combined.log
то очистяться логи, а от їх видалення, як і видалення інших службових файлів, може призвести до припинення роботи Вашого сайту.
du -h --max-depth=1.
Так можна подивитися, скільки місця використовується під сайт. Точка означає поточну директорію, замість неї можна підставити ім'я будь-якої цікавої для Вас директорії.
mc - клон Нортон Командера, в якому зручно працювати з файлами, а також можна працювати з ними по FTP (FTP всередині SSH )! Про дану команду детальніше в наступній статті.
Створення, встановлення та використання публічних/приватних ключів
Для шифрування пропонуються на вибір два стандарти шифрування: DSA і RSA.
DSA або Digital Signature Algorithm - стандарт американського уряду, розроблений NSA для цифрових підписів. Він є похідним від алгоритму підпису Ель-Гамаля. Безпека будується на основі складності вирішення певних типів логарифмічних функцій.
RSA названий від ініціалів авторів: Ron Rivest, Adi Shamir і Leonard Adleman, які першими опублікували алгоритм. Він заснований на складності факторизації великих чисел.
Хоча DSA і RSA мають криптографію практично однакової потужності, але у кожного є свої переваги, коли мова заходить про продуктивність. DSA швидше працює для розшифровки і підписання, а RSA - швидше при шифруванні та перевірці.
Тому на Ваш вибір, але рекомендується ключ від 2048 до 4096 біт. Більш короткі ключі можуть бути недостатньо стійкими, а більш довгі дуже довго генеруються.
SSH Pi 6
Не створюйте ключі будь-якого типу SSH версії 1: вони не є безпечними!
Захист і збереження ключів
SSH Pi 7
Не забувайте парольну фразу: пара ключів без неї марна!
Встановлення публічного ключа на RaspberryPi
Зще відкритим PuTTYgen, виділяємо під заголовком «Публічнийключ для вставки вOpenSSH файл authorized_keys» всю площу і через Ctrl-C копіюємо в буфер локальної системи. По суті, це ті ж дані, які містяться в збереженому файлі приватного ключа, але це у формі, яка може бути безпосередньо використана на Raspberry.
SSH Pi 8
Входимо на Raspberry за допомогою облікового запису, створюємо каталог SSH, якщо необхідно:
$ mkdir ~/.ssh
Редагуємо або створюємо файл з іменем .ssh/authorized_keys. Це буде текстовий файл і текст із буферу обміну повинен бути вставлений в нього. Для цього можна скористатися одним з 7 найпопулярніших способів:
  1. touch ім’я_файла – створити пустий файл
  2. cat > ім’я_файла - і введення закінчити ctrl+z
  3. vim ім’я_файла - створити або редагувати ім’я_файла
  4. nano ім’я_файла – використання вбудовано редактора
  5. echo "текст" > ім’я_файла
  6. > ім’я_файла -  мабуть, найкоротший спосіб
  7. cp ім’я_файла _0 ім’я_файла – скопіювати або створити файл
Відкритий ключ має тільки один довгий рядок, і дуже легко вставити дані таким чином, що обрізаються перші кілька символів. Це робить ключ непрацездатним, так що переконаєтеся, що ключ починається з SSH-RSA або DSA-SSH. Збережіть файл.
SSH Pi 9
Також подбаємо про захист збереженого файла. Переконайтеся, що каталог SSH і файли в ньому може прочитати тільки їх власник - це міра безпеки, яка може бути досягнута за допомогою параметрів команди CHMOD із застосуванням до всього каталогу:
$ chmod 700 ~/.ssh
Права доступу записуються в chmod одним рядком одночасно для трьох типів користувачів:
  • власника файла;
  • інших користувачів, які входять в групу власника;
  • всіх решти користувачів.
Аргумент команди chmod, який задає дозвіл, може бути записаний в двох форматах: в числовому або в символьному.
Приклад - значення права «755»
 
Власник
Група
Решта
Восьмеричне значення
7
5
5
Символьний запис
rwx
r-x
r-x
Позначення типу користувача
u
g
o
Для директорій зі всього списку зазвичай застосовують лише 0, 5 і 7 - повна заборона, читання і повний доступ.
В нашому випадку 700 (-rwx------) означає, що власник може читати, записувати і запускати для виконання, а ніхто інший не має права виконувати будь-які дії.
Виконуємо перевірку за допомогою:
$ ls-lR~/.ssh
Результати виконання команди :
/home/steve/.ssh:
total 16
drwx------    2 steve    steve        4096 Nov 22 13:11 ./
drwx------    6 steve    steve        4096 Nov 22 16:10 ../
-rw-------    1 steve    steve        1150 Nov 22 13:11 authorized_keys
Тепер можна вийти із системи.
Прикріплення приватного ключа сесії SSH
Тепер, коли публічні/приватні ключі створені, вони можуть бути пов'язані з сесією SSH. По-перше, ми зробимо це в PuTTY, запустивши програму та завантаживши необхідну сесію.
Перейдіть до З'єднання (Connection): SSH: панель Auth в категорії ліворуч, потім заповніть файл приватного ключа для поля аутентифікації, перейшовши до файлу .ppk, збереженого раніше. Поверніться до рівня категорії сесії і збережіть поточну сесію.
На даний момент, клієнт PuTTY (на Windows) і сервер OpenSSH (на Rasbian) налаштовані на безпечний доступ з публічним ключем.
SSH Pi 10
Підключення через публічний ключ
Запустіть PuTTY з можливістю завантажити збережену сесію з приватним ключем:
SSH Pi 11
Замість того, щоб вводити пароль облікового запису (який відрізнятиметься на кожній віддаленій системі), система просить парольну фразу, яка захищає локальний приватний ключ. Коли приватний ключ вписується в публічний ключ на сервері OpenSSH, то дозволяє доступ і надає оболонку користувачеві.
Важливо відзначити, що при тому, що користувач повинен ввести секретне слово при вході в систему, фраза пов'язана з локальним приватним ключем, а не з віддаленим обліковим записом. Навіть, якщо публічний ключ користувача встановлений ​​на 1000 різних віддалених серверах, вимагається одна і та ж фраза для приватного ключа для всіх них. Це значно спрощує завдання запам'ятовування облікових даних для доступу і робить його більш безпечним.
Відключення парольної аутентифікації на OpenSSH
Після того, як публічний і приватний ключі користувача перевірені як правильні, можна повністю відключити парольну аутентифікацію. Це виключає всі можливі спроби підбору паролю і різко зростає безпека.
Тим не менше, для машин, які фізично не локальні, буде доцільним відкласти відключення аутентифікації, поки не зовсім ясно, що ключ доступу працює нормально, особливо, коли є кілька користувачів. Після того, як парольна аутентифікації буде відключена, навіть пароль адміністратора не дозволить увійти в систему.
Ці нові властивості для публічного ключа доступу рекомендується дуже уважно протестувати.
Налаштуванні демона SSH можна знайти у файлі sshd_config, який часто зберігаються в директорії /etc/ssh/. В цьому текстовому файлі, який відносно легко прочитати, ми шукатимемо два записи, які треба змінити.
Перший полягає у створенні для PasswordAuthentication значення no. Воно може бути явно встановлене в yes, або бути закоментоване, щоб використати значення за замовчуванням, але ми хочемо явно відключити його.
По-друге, ми хочемо відключити SSH протокол версії 1: він старий,  має кілька суттєвих слабкостей в безпеці і не повинен бути дозволений для зовнішнього використання.
Змінюємо файл конфігурації і переконуємося, що два записи ключових слів встановлені правильно, а старі записи у файлі  /etc/ssh/sshd_config закоментовані:
# Protocol1,2
Protocol 2
PasswordAuthentication no
Як тільки файл конфігурації буде збережений, демон безпечної оболонки повинен бути перезапущений; на більшості платформ це може бути зроблено з  механізмом "service":
# service sshd restart
Ми вбиваємо демона прослуховування і перезапускаємо його, але не припиняємо будь-які існуючі індивідуальні сесії користувача. Тим, хто вважають це ризикованим кроком, пропонується просто перезавантажити машину.
На даний момент, OpenSSH більше не прийматиме паролі будь-якого виду, доступ надається тільки для користувачів із заздалегідь встановленими публічними ключами.
Дозвіл підтримки агента SSH
До цього моменту, ми приділили велику увагу безпеці доступу до системи, але він, як і раніше, не дуже зручний: ми, як і раніше, щоразу повинні вводити комплексну парольну фразу. Це може стати утомливих, якщо використовується велика кількість систем.
На щастя, набір SSH забезпечує прекрасний механізм для розблокування приватного ключа один раз, і дозволяє окремі з'єднання SSH без запиту на введення пароля щоразу.

SSH Pi 12

Знайдіть і запустіть програму Pageant.exe з того ж місця, що й інші пов'язані з PuTTY файли, а він поставить себе в системному треї (у правому нижньому кутку поряд з годинником).
Двічі клацніть на іконці в треї і запуститься діалогове вікно з порожнім списком ключів. Виберіть пункт Додати ключ (AddKey)і перейдіть в каталог .ppk файла, який містить приватний ключ. Коли буде запит на введення пароля, введіть його і натисніть кнопку ОК. Натисніть кнопку Закрити (Close), щоб закрити агента.
Тепер запустіть одну з уже налаштованої сесій SSH до віддаленого хоста, який використовує публічний ключ: він запитає агента для приватного ключа, віддалено обміняється з ним і надасть доступ без подальшого втручання користувача.
Примітка - вдумливий читач може тільки дивуватися, як агент зберігає дані, і чи не можуть ненадійні програми потайки отримати цей приватний ключ. Ми не знаємо, як це працює, але ніколи не чули про реальні проблеми безпеки з цього питання.
Попереднє завантаження приватного ключа
SSH Pi  13
Перше, що багато користувачів PuTTY робить, коли входить в систему протягом дня, є запуск агента і додавання приватного ключа. Це всього декілька кроків, але ми можемо оптимізувати їх трохи більше. Якщо ми запустимо агент з файлом приватного ключа як параметром, то він завантажуватиме ключ автоматично.
Перейдіть до Pageant.exe і клацніть правою кнопкою миші, щоб скопіювати його значок. Вставте значок як ярлик на робочому столі, потім клацніть правою кнопкою миші і виберіть Властивості. Введіть повний шлях до .ppk файлу приватного ключа як параметру і збережіть зміни.
Двічі клацнувши цей значок, Ви завантажуватимете файл ключів, який вимагає парольну фразу. Ввівши її один раз, це буде останній раз, коли це необхідно зробити, поки агент залишатиметься прикріпленим.
(За матеріалами EN: unixwiz.net)
 
>
BookNewsPractice SearchPartnersAbout
Підтримка та дизайн: Могильний С.С. Шаблон: Joomla Templates by BuyHTTP Joomla Hosting