На заметку
Новое на сайте
- Купить коробку передач Нива недорого и надёжно
- Роботы-пылесосы для бассейна: умная чистота без усилий
- Дозатор шнековый для зерна
- Лестницы ДПК как современное решение для дома и сада
- Лестница между этажами: не просто конструкция, а сердце дома
- Надежная перевозка комбайнов по всей стране
- Надёжность и долговечность в деталях — запчасти для поршневого компрессора LB75
- Автомобильный комфорт под контролем: зачем нужно регулярное обслуживание кондиционеров
- Современное оборудование для шиномонтажа: точность, скорость и комфорт работы
- Идеальный помощник для любых задач: компрессор Fini в деталях
Удаленная работа с Linux-сервером через SSH
12.02.2021
Часто в работе нужно выполнять различные задачи на серверах, работающих под Linux. Эти машины могут представлять из себя как сервер для удаленной работы, так и находится в метре от вас, но пересаживаться к ним не очень хочется и неэффективно это и неудобно. В таком случае нам нужно уметь работать с ними удаленно. На помощь нам придет SSH, о работе с которым я расскажу в этой статье.
SSH - это безопасный сетевой протокол, позволяющий устанавливать удаленный доступ к консоли, а также туннелировать TCP-соединение, например, для передачи файлов.
Чтобы им пользоваться, необходимо:
-
установить SSH-сервер на удаленной машине;
-
установить SSH-клиент на вашем рабочем машине;
-
иметь доступ авторизации в удаленной машины в виде логин / пароль или SSH-ключ.
Скорее всего SSH-сервер на удаленной машине у вас установлен. Если нет, тогда это можно сделать следующей командой:
# Aptitude install openssh-server
Если ваша рабочая машина под Linux'ом, тогда там скорее всего уже будет установлен SSH-клиент. Если его нет, тогда можно его установить:
# Aptitude install openssh-client
Если у вас Windows, тогда можно использовать PuTTY или Xshell (рекомендуется), что можно установить бесплатно для некоммерческого домашнего пользования. В этой статье я не буду описывать работу в Windows. Если возникнет необходимость, то это будет тема для отдельной статьи.
Для подключения, необходимо выполнить следующую команду:
# Ssh This email address is being protected from spambots. You need JavaScript enabled to view it.
В этом случае igor - это имя пользователя на удаленной машине, к которой я хочу подключиться, ssdev.pp.ua - это имя хоста удаленной машины, которое может быть в виде домена или IP-адреса.
При первом подключении вас спросит, действительно ли вы хотите подключиться к этой машине, а также это будет запросу для скачивания открытого ключа для дальнейшей работы в защищенном режиме.
Сначала будет попытка подключения через SSH-ключ, если такового нет, тогда необходимо будет ввести пароль, если для пользователя разрешена авторизация паролем. Если все пройдет успешно, тогда перед вами будет удалена консоль, где вы можете выполнять любые действия в пределах полномочий вашего пользователя в системе.
Выясним, как авторизоваться с помощью SSH-ключа. Первое, что нужно сделать - это сгенерировать ключи на вашей машине, с которой вы подключаетесь к серверу. Но прежде чем их генерировать, проверим, возможно они уже есть:
# Ls ~ / .ssh
Если в результате вы увидите файлы id_rsa и id_rsa.pub , значит ключи уже существуют. Если папки или этих файлов нет, значит их нужно создать.
Если папки нет, тогда создаем ее:
# Mkdir ~ / .ssh
Теперь генерируем ключи:
# Ssh-keygen -t rsa -b 2048 -f ~ / .ssh / id_rsa
Вам будет предложено указать пароль для ключа, чтобы увеличить безопасность, но тогда потребуется вводить каждый раз, когда будет использоваться ключ. Указывать пароль - выбирать вам.
Будет создано два файла:
~ / .ssh / id_rsa - закрытый ключ, который вы держать в безопасности,
~ / .ssh / id_rsa.pub - открытый ключ, который необходимо передавать на сервер, к которому будете подключаться.
Для безопасности надо защитить эти файлы, поэтому обновим права доступа к закрытому ключу:
# Chmod 600 ~ / .ssh / id_rsa
Теперь необходимо добавить открытый ключ к нашему серверу. Это можно сделать различными способами. Самым простым способом будет выполнение команды:
# Ssh-copy-id This email address is being protected from spambots. You need JavaScript enabled to view it.
После автризации публичный ключ текущего пользователя будет добавлен к удаленной машины, и все последующие подключения не потребуют ввода пароля, то будет использоваться ключ.
Если данный способ по какой причине не подходит (например, невозможно авторизоваться паролем), тогда необходимо добавить открытый ключ в файл /home/igor/.ssh/authorized_keys на удаленной машине.
Это можно сделать, если вывести содержимое открытого ключа в консоль
# Cat ~ / .ssh / id_rsa.pub
и скопировать его в буфер обмена и вставить в конец файла /home/igor/.ssh/authorized_keys на удаленной машине. Каждый такой ключ должен быть в отдельной ленте. Если на сервере нет такой папки или файла, то их надо создать.
Также последний вариант можно сделать удаленно одной командой:
cat ~ / .ssh / id_rsa.pub | ssh This email address is being protected from spambots. You need JavaScript enabled to view it. "mkdir -p ~ / .ssh && cat >> ~ / .ssh / authorized_keys"
Но в этом случае все равно необходимо авторизоваться. Однако вы можете подключиться под другим пользователем, чтобы внести изменения в файл необходимого пользователя (при этом необходимо, чтобы ваш другой пользователь имел соответствующие полномочия).
Стоит отметить, что каждая пара ключей является уникальной для каждого пользователя в системе клиента и публичный ключ необходимо устанавливать для каждого пользователя в системе сервера.
Для безопасности советую выключить на сервере авторизацию с помощью пароля пользователя root . Для этого на удаленной машине необходимо открыть файл в текстовом редакторе:
# Nano / etc / ssh / sshd_config
там найдите опцию PermitRootLogin и установите ей значение without-password :
PermitRootLogin without-password
Таким образом, подключиться под root 'ом будет возможно только с помощью ключа.
Для большей безопасности советую установить значение no для этой опции:
PermitRootLogin no
Это сделает невозможным подключение под root 'ом вообще. Однако вы всегда сможете работать под ним, если войдете под другим пользователем и переключении на root с помощью команды su :
# su
Или можно установить программу sudo :
# Aptitude install sudo
Например, если нужно, чтобы користоувач igor мог выполнять команды с root -повноваженнямы, надо добавить пользователя igor к группе sudo :
# Adduser igor sudo
После этого мы можем запускать команды с root -повноваженнямы от пользователя igor . Для этого перед командой необходимо добавить команду sudo , например
# Sudo service ntp restart
Если на сервере много пользователей, и вы хотите, чтобы можно было авторизоваться только под несколькими, тогда необходимо в файле / etc / ssh / sshd_config изменить опцию AllowUsers . Если этой опции там нет, тогда ее следует добавить (желательно под комментарием Authentication ). После названия опции просто перечисляете логины пользователей в системе разделяя пробелом.
AllowUsers igor project
Таким образом через SSH на сервер смогут заходить только два пользователя: igor и project .
Если вы много работаете по SSH, тогда следует использовать программу tmux , которая позволяет легко восстанавливать работу после расторжения связи, а также предоставляет много удобных возможностей, например, деление экрана на части и табулирования, которое позволяет работать параллельно в нескольких сессиях, и тому подобное.
Соображений и умение использовать вышесказанное, покроет более 80% необходимых знаний и умений, необходимых для эффективной и безопасной работы с удаленными машинами под Linux.
Новости строительства
Viessmann: упрощение схем отопления и горячего водоснабжения
В начале февраля 2018 года в рамках деловой программы международной выставки Aqua-Therm прошел симпозиум «Эффективные системы отопления в сочетании с возобновляемыми источниками энергии», организованный немецкой ассоциацией производителей отопительной техники.
Read more...«КНАУФ» развивает направление модульного строительства
Группа «КНАУФ» – один из крупнейших в мире производителей строительных и отделочных материалов – продолжает реализацию проекта по созданию систем для модульного домостроения. Технология базируется на использовании готовых элементов – модулей, позволяющих существенно ускорить процесс возведения здания.
Read more...Redverg выводит на рынок инверторные генераторы открытого типа
Компания Redverg недавно пополнила свой ассортимент бензиновыми инверторными генераторами открытого типа, которые в отличие от обычных бензиновых или дизельных генераторов позволяют вырабатывать электроэнергию стабильно высокого качества - с искажениями синусоидальной волны менее 2,5%.
Read more...Дисковая пила от Makita
Makita выпускает на рынок дисковую пилу CA5000XJ для резки пазов в алюминиевых композитных панелях (также нередко называемых «алюкобонд»).
Read more...«ИНТЕРСКОЛ»: рождение нового кластера
Год назад российская компания «ИНТЕРСКОЛ» открыла новый завод в Особой экономической зоне «Алабуга» (Республика Татарстан).
Read more...Душ System Rain
System Rain — это не просто душ, а настоящий тропический ливень у вас дома!
Read more...
