Яндекс.Метрика

Удаленная работа с 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...
TOP