Главная » Linux » Вы здесь

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

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

Технология SSH (Secure Shell) позволяет проводить безопасное удаленное управление компьютером через защищенное соединение. SSH производит шифровку всех передаваемых файлов, включая пароли, а также передает совершенно любой сетевой протокол. Для корректной работы инструмента его необходимо не только установить, но еще и настроить. Именно о произведении главной конфигурации мы и хотели бы поговорить в рамках данной статьи, взяв за пример последнюю версию операционной системы Ubuntu, на которой будет располагаться сервер.

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

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

Подробнее: Установка SSH-server в Ubuntu

Создание пары ключей RSA

В только что установленном SSH еще нет заданных ключей для осуществления подключения от сервера к клиенту и наоборот. Все эти параметры необходимо задать вручную сразу же после добавления всех компонентов протокола. Пара ключей работает с помощью алгоритма RSA (сокращение от фамилий разработчиков Rivest, Shamir и Adleman). Благодаря этой криптосистеме через специальные алгоритмы производится шифрование ключей. Для создания пары открытых ключей вам нужно лишь ввести соответствующие команды в консоль и следовать появившимся инструкциям.

  1. Перейдите к работе с «Терминалом» любым удобным методом, например, открыв его через меню или комбинацию клавиш Ctrl + Alt + T.
  2. Запустить терминал в Ubuntu для дальнейшей настройки SSH

  3. Введите команду ssh-keygen, а затем нажмите на клавишу Enter.
  4. Создать ключ SSH через консоль в операционной системе Ubuntu

  5. Будет предложено создать файл, куда сохранятся ключи. Если желаете оставить их в расположении, выбранном по умолчанию, просто нажмите на Enter.
  6. Выбрать файл для сохранения ключей протокола SSH в Ubuntu

  7. Открытый ключ может быть защищен кодовой фразой. Если хотите использовать эту опцию, в появившейся строке напишите пароль. Вводимые символы при этом отображаться не будут. В новой строке потребуется его повторить.
  8. Ввод ключевой фразы при создании ключа SSH в Ubuntu

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

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

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

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

Вариант 1: Команда ssh-copy-id

Команда ssh-copy-id встроена в операционную систему, поэтому для ее выполнения не нужно устанавливать никаких дополнительных компонентов. Соблюдайте простой синтаксис, чтобы скопировать ключ. В «Терминале» необходимо ввести ssh-copy-id username@remote_host, где username@remote_host — имя удаленного компьютера.

Скопировать ключ SSH через специальную утилиту в Ubuntu

При первом подключении вы получите уведомление текстом:

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

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

/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:

Укажите пароль от удаленного хоста, чтобы утилита смогла войти в него. Инструмент будет копировать данные из файла публичного ключа ~/.ssh/id_rsa.pub, а после этого на экране появится сообщение:

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, которая прочитает данные из файла, а потом они будут отправлены на сервер. В консоли потребуется ввести строку

cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys".

Передать скопированный ключ через специальную утилиту Ubuntu

При появлении сообщения

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

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

Вариант 3: Ручное копирование открытого ключа

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

Просмотреть информацию о ключе через команду cat в Ubuntu

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

Аутентификация на сервере через созданный ключ

В предыдущем разделе вы узнали о трех методах копирования ключа удаленного компьютера на сервер. Такие действия позволят подключиться без использования пароля. Выполняется эта процедура через командную строку путем ввода shh ssh username@remote_host, где username@remote_host — имя пользователя и хост нужного компьютера. При первом подключении вы будете уведомлены о незнакомом соединении и можете продолжить, выбрав вариант yes.

Подключиться к удаленному компьютеру через SSH в Ubuntu

Подключение произойдет автоматически, если во время создания пары ключей не была задана ключевая фраза (passphrase). В противном случае сначала придется ввести ее, чтобы продолжить работу с SSH.

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

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

  1. В «Терминале» откройте конфигурационный файл через редактор с помощью команды sudo gedit /etc/ssh/sshd_config.
  2. Запустить конфигурационный файл SSH через редактор в Ubuntu

  3. Найдите строку «PasswordAuthentication» и уберите знак # в начале, чтобы раскомментировать параметр.
  4. Раскомментировать строку с аутентификацией по паролю в Ubuntu

  5. Измените значение на no и сохраните текущую конфигурацию.
  6. Отключить аутентификацию по паролю в SSH через Ubuntu

  7. Закройте редактор и перезапустите сервер sudo systemctl restart ssh.
  8. Перезапустить сервер SSH в операционной системе Ubuntu

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

Настройка стандартного firewall

В Убунту сетевой защитой по умолчанию выступает фаервол Uncomplicated Firewall (UFW). Он позволяет разрешать соединения для избранных сервисов. Каждое приложение создает свой профиль в этом инструменте, а UFW управляет ими, разрешая или запрещая подключения. Настройка профиля SSH путем добавления его в список осуществляется так:

  1. Откройте список профилей firewall через команду sudo ufw app list.
  2. Посмотреть список профилей стандартного фаервола в Ubuntu

  3. Введите пароль от учетной записи для отображения информации.
  4. Ввод пароля для просмотра списка профилей стандартного фаервола Ubuntu

  5. Вы увидите лист доступных приложений, среди них должен находиться и OpenSSH.
  6. Список профилей стандартного фаервола в Ubuntu

  7. Теперь следует разрешить соединения через SSH. Для этого добавим его в список разрешенных профилей с помощью sudo ufw allow OpenSSH.
  8. Добавить сервер SSH для разрешения соединения в фаервол Ubuntu

  9. Включите firewall, обновив правила, sudo ufw enable.
  10. Перезапустить фаервол с обновлениями правил в Ubuntu

  11. Для убеждения в том, что соединения разрешены, следует прописать sudo ufw status, после чего вы увидите состояние сети.
  12. Посмотреть список разрешенных соединений фаервола в Ubuntu

На этом наши инструкции по конфигурации SSH в Ubuntu завершены. Дальнейшие настройки конфигурационного файла и других параметров осуществляются лично каждым пользователем под его запросы. Ознакомиться с действием всех составляющих SSH вы можете в официальной документации протокола.

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

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

ДА НЕТ


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


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

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

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