В этой заметке хочу поделиться своим небольшим опытом администрирования нашей рабочей сети.
Мне по работе среди прочего приходится обслуживать наши компьютеры. В частности, своевременно обновлять системы, для чего я заходил на каждый компьютер через Anydesk, блокировал удаленную машину, запускал терминал и выполнял обновления. Такой способ крайне неудобен для конечного пользователя, так как прерывается его работа. А когда обновления большие, на час и более, это вообще стоп работе. Я давно подозревал, что должен быть способ удаленного управления без явного подключения к рабочему столу на машине пользователя. И это — SSH.
Вкратце, SSH (англ. Secure Shell — «безопасная оболочка») — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем.
Для такого управления необходимы SSH-клиент и SSH-сервер. Клиент установлен на Linux'е, а сервер необходимо установить простой командой (на работе на всех машинах Linux Mint):
$ apt install openssh-server
После этого на сервере необходимо немного отредактировать файл конфигурации:
$ nano /etc/ssh/sshd_config
Здесь я указал необходимый порт (для каждой машины свой).
Раскомментировал и изменил строку PermitRootLogin на такое значение:
PermitRootLogin no
Остальное оставил без изменений, в том числе и строку
X11Forwarding yes
Если она закомментирована или у нее значение «no», измените на предложенное выше. Это позволит запускать приложения сервера на клиентской машине, при этом не отвлекая работника на удаленной машине, так как его приложение запустится у вас, а не у него.
После сохранения внесенных изменений в файл sshd_config необходимо перезапустить сервер командой (Debian)
$ service sshd restart
или (Arch Linux)
$ systemctl restart sshd
Для доступа к компьютерам не только из рабочей локальной сети, но и из интернета, на нашем роутере настроил перенаправление портов, указанных на каждой машине в файле 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:
Отправить комментарий