Настройка SSH в Debian

Как известно, открытая технология SSH разрешает удаленно подключаться к определенному компьютеру и передавать данные через выбранный защищенный протокол. Это позволяет реализовать и полноценное управление выбранным устройством, обеспечив безопасный обмен важной информацией и даже паролями. Иногда у пользователей возникает надобность осуществить соединение через SSH, однако помимо инсталляции самой утилиты приходится производить и дополнительные настройки. Об этом мы и хотим поговорить сегодня, взяв за пример дистрибутив Debian.

Настраиваем SSH в Debian

Мы разделим процесс конфигурации на несколько этапов, поскольку каждый отвечает за осуществление конкретных манипуляций и может просто не пригодиться определенным юзерам, что зависит от личных предпочтений. Начнем с того, что все действия будут производиться в консоли и потребуется подтверждение прав суперпользователя, поэтому подготовьтесь к этому заранее.

Установка SSH-server и SSH-client

По умолчанию SSH входит в стандартный набор утилит операционной системы Debian, однако из-за каких-либо особенностей нужные файлы могут устареть или просто отсутствовать, например, когда пользователь вручную произвел деинсталляцию. Если вы нуждаетесь в предварительной установке SSH-server и SSH-client, выполните следующую инструкцию:

  1. Откройте меню «Пуск» и запустите оттуда «Терминал». Сделать это можно и через стандартную комбинацию клавиш Ctrl + Alt + T.
  2. Переход к терминалу для дальнейшей установки SSH в Debian

  3. Здесь вас интересует команда sudo apt install openssh-server, отвечающая за установку серверной части. Введите ее и нажмите на Enter для активации.
  4. Ввод команды в терминале для установки сервера SSH в Debian

  5. Как вы уже знаете, действия, выполняемые с аргументом sudo, потребуется активировать, указав пароль суперпользователя. Учитывайте, что вводимые в данной строке символы не отображаются.
  6. Подтверждение команды для установки сервера SSH в Debian

  7. Вы будете уведомлены о том, что пакеты добавлены или обновлены. Если SSH-server уже инсталлирован в Debian, появится сообщение о наличии указанного пакета.
  8. Уведомление о завершении инсталляции сервера SSH в Debian

  9. Далее потребуется добавить в систему и клиентскую часть, что касается и того компьютера, к которому в будущем будет осуществляться подключение. Для этого используется похожая команда sudo apt-get install openssh-client.
  10. Команда для установки клиентской части SSH в Debian

Больше никаких дополнительных компонентов инсталлировать не придется, теперь можно смело переходить к управлению сервером и настройке конфигурационных файлов, чтобы создать ключи и подготовить все для дальнейшего соединения с удаленным рабочим столом.

Управление сервером и проверка его работы

Вкратце давайте остановимся на том, как осуществляется управление установленным сервером и проверка его работы. Это необходимо сделать еще до того, как переходить к настройке, чтобы убедиться в корректности функционирования добавленных компонентов.

  1. Используйте команду sudo systemctl enable sshd, чтобы добавить сервер в автозагрузку, если это не случилось автоматически. В случае надобности отмены запуска вместе с операционной системой используйте systemctl disable sshd. Тогда для ручного запуска понадобится указывать systemctl start sshd.
  2. Команда для добавления сервиса SSH в Debian для автозагрузки

  3. Все подобные действия абсолютно всегда должны быть выполнены от имени суперпользователя, поэтому нужно вводить его пароль.
  4. Ввод пароля при добавлении сервиса SSH в Debian для автозагрузки

  5. Задействуйте команду ssh localhost для проверки сервера на работоспособность. Замените localhost на адрес локального компьютера.
  6. Команда для подключения к локальной сети через SSH в Debian

  7. При первом подключении вы будете уведомлены о том, что источник не является проверенным. Это происходит, поскольку мы еще не выставили настройки безопасности. Сейчас просто подтвердите продолжение подключения, введя yes.
  8. Подтверждение подключения к локальной сети через SSH в Debian

Добавление пары ключей RSA

Подключение от сервера к клиенту и наоборот через SSH осуществляется путем ввода пароля, однако можно и даже рекомендуется создать пару ключей, которая будет разработана через алгоритмы RSA. Этот тип шифрования позволит создать оптимальную защиту, которую будет сложно обойти злоумышленнику при попытке взлома. На добавление пары ключей потребуется всего несколько минут, а выглядит это процесс так:

  1. Откройте «Терминал» и введите там ssh-keygen.
  2. Запуск команды для генерации двух пар ключей при настройке SSH в Debian

  3. Вы можете самостоятельно выбрать место, куда требуется сохранить путь к ключу. Если нет желания его менять, просто нажмите на клавишу Enter.
  4. Ввод расположения для хранения двух пар ключей SSH в Debian

  5. Сейчас создается открытый ключ. Он может быть защищен кодовой фразой. Введите ее в отобразившуюся строку или оставьте пустой, если не хотите активировать данную опцию.
  6. Ввод ключевой фразы для доступа к ключам при настройке SSH в Debian

  7. При вводе ключевой фразы придется указать ее еще раз, чтобы подтвердить.
  8. Подтверждение ввода ключевой фразы для настройки SSH в Debian

  9. Отобразится уведомление о создании публичного ключа. Как видите, ему был присвоен набор случайных символов, а также создалось изображение по рандомным алгоритмам.
  10. Успешное создание двух пар ключей при настройке SSH в Debian

Благодаря только что произведенным действием создался секретный и открытый ключ. Они и будут задействованы для соединения между устройствами. Сейчас придется скопировать открытый ключ на сервер, а сделать это можно разными методами.

Копирование открытого ключа на сервер

В Debian существует три варианта, с помощью которых можно скопировать открытый ключ на сервер. Мы предлагаем сразу ознакомиться со всеми ними, чтобы в будущем выбрать оптимальный. Это актуально в тех ситуациях, когда один из методов не подходит или не удовлетворяет потребности юзера.

Способ 1: Команда ssh-copy-id

Начнем с самого простого варианта, подразумевающего использование команды ssh-copy-id. По умолчанию эта утилита уже встроена в ОС, поэтому в предварительной инсталляции не нуждается. Синтаксис ее тоже максимально прост, а от вас потребуется выполнить такие действия:

  1. В консоли введите команду ssh-copy-id username@remote_host и активируйте ее. Замените username@remote_host на адрес целевого компьютера, чтобы отправка прошла успешно.
  2. Стандартная команда для копирования публичного ключа в SSH в Debian

  3. При первой попытке соединения вы увидите сообщение "The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes". Выберите положительный ответ, чтобы продолжить подключение.
  4. Подтверждение первого подключения к серверу SSH в Debian при копировании ключей

  5. После этого утилита самостоятельно займется поиском и копированием ключа. В итоге, если все прошло успешно, на экране появится уведомление «/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys username@203.0.113.1's password:«. Это значит, что можно вводить пароль и переходить к непосредственному управлению удаленным рабочим столом.
  6. Информация об успешном копировании ключа SSH в Debian стандартным способом

Дополнительно уточним, что после первой успешной авторизации в консоли появится уведомление следующего характера:

Number of key(s) added: 1

Now try logging into the machine, with: "ssh 'username@203.0.113.1'"
and check to make sure that only the key(s) you wanted were added.

В нем говорится о том, что ключ был успешно добавлен на удаленный компьютер и теперь не возникнет никаких проблем при попытках подключения.

Способ 2: Экспорт ключа через SSH

Как вы знаете, экспорт публичного ключа позволит подключаться к указанному серверу без предварительного ввода пароля. Сейчас, пока ключ еще не находится на целевом компьютере, подключиться через SSH можно путем ввода пароля, чтобы затем вручную перенести необходимый файл. Для этого в консоли вам придется вписать команду cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys".

Копирование ключей SSH в Debian через стандартную команду

На экране должно появиться уведомление

The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)?
.

Подтвердите его, чтобы продолжить соединение. Публичный ключ будет автоматически скопирован в конец конфигурационного файла «authorized_keys». На этом процедуру экспорта можно считать оконченной.

Способ 3: Ручное копирование ключа

Этот метод подойдет тем пользователям, у кого нет возможности создать удаленное подключение к целевому компьютеру, однако имеется физический доступ к нему. В таком случае ключ придется переносить самостоятельно. Для начала определите сведения о нем на серверном ПК через cat ~/.ssh/id_rsa.pub.

Определение номера ключа для дальнейшего ручного копирования SSH в Debian

В консоли должна отобразиться строка ssh-rsa + ключ в виде набора символов== demo@test. Теперь можно перейти к другому компьютеру, где следует создать новую директорию, введя mkdir -p ~/.ssh. В ней же добавляется текстовый файл под названием authorized_keys. Осталось только вставить туда определенный ранее ключ через echo + строка публичного ключа >> ~/.ssh/authorized_keys. После этого аутентификация будет доступна без предварительного ввода паролей. Осуществляется это через команду ssh username@remote_host, где username@remote_host следует заменить на имя необходимого хоста.

Подключение к удаленному компьютеру для дальнейшего переноса ключа SSH в Debian

Рассмотренные только что способы позволили перенести публичный ключ на новое устройство, чтобы сделать возможным подключение без ввода пароля, однако сейчас форма на ввод все еще отображается. Такое положение вещей позволяет злоумышленникам получить доступ к удаленному рабочему столу, просто перебрав пароли. Далее мы предлагаем заняться обеспечением безопасности, выполнив определенные настройки.

Отключение аутентификации по паролю

Как уже было сказано ранее, возможность аутентификации по паролю может стать слабым звеном в безопасности удаленного соединения, поскольку существуют средства переборов таких ключей. Мы рекомендуем отключить эту опцию, если вы заинтересованы в максимальной защите своего сервера. Сделать это можно так:

  1. Откройте конфигурационный файл /etc/ssh/sshd_config через любой удобный текстовый редактор, это может быть, например, gedit или nano.
  2. Запуск текстового редактора для настройки конфигурационного файла SSH в Debian

  3. В открывшемся списке отыщите строку «PasswordAuthentication» и уберите знак #, чтобы сделать эту команду активной. Поменяйте значение yes на no, чтобы отключить интересующую опцию.
  4. Нахождение строки, отвечающей за аутентификацию по паролю SSH в Debian

  5. По завершении нажмите на Ctrl + O, чтобы сохранить изменения.
  6. Сохранение изменений после настройки аутентификации по паролю SSH в Debian

  7. Не меняйте название файла, а просто нажмите на Enter для применения настройки.
  8. Подтверждение сохранения конфигурационного файла SSH в Debian

  9. Можно покинуть текстовый редактор, нажав на Ctrl + X.
  10. Выход из текстового редактора после настройки конфигурационного файла SSH в Debian

  11. Все изменения вступят в силу только после перезагрузки службы SSH, поэтому сделайте это сразу же через sudo systemctl restart ssh.
  12. Перезапуск SSH в Debian после внесения изменений в конфигурационный файл

В результате выполненных действий возможность аутентификации по паролю будет отключена, а вход станет доступен только через пару ключей RSA. Учитывайте это при произведении подобной конфигурации.

Настройка параметра межсетевого экрана

В завершение сегодняшнего материала хотим рассказать о настройке межсетевого экрана, который будет использован для разрешений или запрещений соединений. Мы пройдемся только по основным пунктам, взяв за пример Uncomplicated Firewall (UFW).

  1. Для начала давайте просмотрим список существующих профилей. Введите sudo ufw app list и нажмите на Enter.
  2. Просмотр списка открытых подключений межсетевого экрана для SSH в Debian

  3. Подтвердите действие, указав пароль суперпользователя.
  4. Ввод пароля при просмотре списка подключений межсетевого экрана SSH в Debian

  5. В списке отыщите SSH. Если эта строка там присутствует, значит, все функционирует корректно.
  6. Нахождение строки SSH в Debian при изучении правил межсетевого экрана

  7. Разрешите соединение через эту утилиту, написав sudo ufw allow OpenSSH.
  8. Добавление SSH в Debian для межсетевого экрана для разрешения подключений

  9. Включите межсетевой экран, чтобы обновить правила. Делается это через команду sudo ufw enable.
  10. Включение межсетевого экрана после внесения изменений SSH в Debian

  11. Вы в любой момент можете проверить текущее состояние брандмауэра, введя sudo ufw status.
  12. Просмотр статуса межсетевого экрана для отслеживания SSH в Debian

На этом процесс настройки SSH в Debian закончен. Как видите, существует множество различных нюансов и правил, которые требуется соблюдать. Конечно, в рамках одной статьи невозможно уместить абсолютно всю информацию, поэтому мы затронули только основные сведения. Если вы заинтересованы в получении более углубленных данных об этой утилите, советуем ознакомиться с ее официальной документацией.

Мы рады, что смогли помочь Вам в решении проблемы.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

ДА НЕТ

Поделиться статьей в социальных сетях:



Еще статьи по данной теме:


Задайте вопрос или оставьте свое мнение

Примечание: если отправленный комментарий не появился на странице, значит он ушел на проверку и скоро будет опубликован. Пожалуйста, не дублируйте вопрос. Мы ответим Вам в ближайшее время.