Віддалений доступ через SSH

У цій статті хочу поділитися своїм невеликим досвідом адміністрування нашої робочої мережі.

Мені по роботі, серед іншого, доводиться обслуговувати наші комп'ютери. Зокрема, своєчасно оновлювати системи, для чого я заходив на кожен комп'ютер через Anydesk, блокував віддалену машину, запускав термінал та виконував оновлення. Такий спосіб украй незручний для кінцевого користувача, оскільки переривається його робота. А коли поновлення великі, на годину і більше, це взагалі стоп роботі. Я давно підозрював, що має бути спосіб віддаленого керування без явного підключення до робочого столу на машині користувача. І це — SSH.

Коротко, SSH (англ. Secure Shell — «безпечна оболонка») — мережевий протокол прикладного рівня, що дозволяє виробляти віддалене керування операційною системою та тунелювання TCP-з'єднань (наприклад, для передачі файлів). Схожий по функціональності з протоколами Telnet і rlogin, але, на відміну від них, шифрує весь трафік, включаючи паролі, що передаються. SSH припускає вибір різних алгоритмів шифрування. SSH-клієнти та SSH-сервери доступні для більшості мережевих операційних систем.

Для такого управління необхідні SSH-клієнт та SSH-сервер. Клієнт встановлений на Linux'і, а сервер необхідно встановити командою:

Ubuntu

$ apt install openssh-server

Arch

$ pacman -S openssh

Після цього на сервері необхідно трохи відредагувати конфігураційний файл:

$ nano /etc/ssh/sshd_config

Тут я вказав потрібний порт (для кожної машини свій).

Розкоментував та змінив рядок PermitRootLogin на таке значення:

PermitRootLogin no

Решту залишив без змін, у тому числі й рядок

X11Forwarding yes

Якщо вона закоментована або має значення «no», змініть на запропоноване вище. Це дозволить запускати програми сервера на клієнтській машині, при цьому не відволікаючи працівника на віддаленій машині, тому що його програма запуститься у вас, а не в нього.

Після збереження внесених змін у файл sshd_config необхідно перезапустити сервер командою

Ubuntu

$ service sshd restart

Arch

$ systemctl restart sshd

В системі Arch (EndeavourOS) довелося також зробити наступні кроки.

а) Запуск служби

$ systemctl enable sshd

б) Додавання служби до автозапуску

$ /usr/lib/systemd/system/sshd.service

в) Перевірка статусу

$ systemctl status sshd

(повинно бути "running", сервіс — "enabled"),

г) Брандмауер (firewall): явно дозволити необхідні порти для сервісу "ssh".

Для доступу до комп'ютерів не тільки з робочої локальної мережі, але й з інтернету, на нашому роутері налаштував перенаправлення портів, вказаних на кожній машині у файлі sshd_config, на IP-адреси відповідних комп'ютерів. Тепер можна підключатись.

Для підключення до сервера SSH необхідно в терміналі ввести команду

ssh -p [port] [user]@[ip-address]

де
[port] – номер порту, вказаний у налаштуваннях sshd_config;
[user] — ім'я користувача сервера, під яким здійснюватиметься вхід на віддалену машину;
[ip-address] — відповідно ip адреса сервера (віддаленого комп'ютера).

Вводимо пароль користувача і вуаля ми керуємо віддаленою машиною в терміналі на своєму комп'ютері. Щоб не вводити кожного разу команди в терміналі для доступу до кожного комп'ютера, створив значки запуску окремих терміналів для кожної машини.

На іншому своєму ноутбуку, на якому встановлена Windows 10, як термінал використовую Microsoft Power Shell. Тут також створив ярлики для кожного комп'ютера, ще створив аліаси, так що вводячи тільки ім'я користувача віддаленого комп'ютера, відкривається окреме вікно PS, в якому вже виконана команда ssh -p [port] [user]@[ip-address]. Дуже зручно все вийшло.

Але я пішов ще далі і встановив додаток Termux на свій смартфон і тепер можу керувати робочими комп'ютерами в терміналі на смартфоні:



Поділитися:

Чи сподобалася ця публікація? Не пропустіть наступні публікації та почніть стежити за цим блогом.

0 comments:

Дописати коментар