Поиск по сайту:
Мы познаем человека не по тому, что он знает, а по тому, чему он радуется (А. Бергсон).

Как сгенерировать SSH-ключи в Ubuntu?

13.12.2024
Как сгенерировать SSH-ключи в Ubuntu

Ключи SSH (Secure Shell) — это надёжный и безопасный способ аутентификации при подключении к удалённым системам без использования традиционных паролей. В отличие от паролей, которые часто уязвимы для атак методом перебора, ключи SSH — это криптографические ключи, которые обеспечивают дополнительный уровень безопасности и гораздо сложнее поддаются взлому. Это делает ключи SSH идеальным выбором для разработчиков, администраторов и всех, кто управляет конфиденциальными средами или средами с высоким уровнем доступа.

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

 

Как сгенерировать и настроить SSH-ключи в Ubuntu

Сгенерировать Пару ключей SSH

Откройте терминал: на вашем локальном компьютере найдите и откройте приложение «Терминал». Если вы используете графический пользовательский интерфейс, терминал обычно можно найти в меню приложений или использовать сочетание клавиш (например, Ctrl + Alt + T во многих дистрибутивах Linux).

Создание пары ключей: в терминале введите приведенную ниже команду для создания новой пары ключей SSH:

ssh-keygen -t rsa -b 4096

 

  • Опция -t rsa указывает на то, что вы хотите использовать алгоритм RSA для своих ключей. RSA — это широко используемая криптосистема с открытым ключом, известная своей безопасностью и совместимостью с различными платформами и приложениями.
  • Опция -b 4096 устанавливает размер ключа в 4096 бит. Чем больше размер ключа, тем выше уровень безопасности, так как злоумышленникам становится всё сложнее взломать ключ методом перебора. Хотя 2048 бит — это минимальный рекомендуемый размер для обеспечения безопасности, использование 4096 бит обеспечивает дополнительный уровень защиты.

 

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

Добавление парольной фразы (необязательно): Далее у вас будет возможность добавить парольную фразу к вашему закрытому ключу. Этот шаг является необязательным, но настоятельно рекомендуется для усиления защиты. Добавление парольной фразы означает, что даже если кто-то получит ваш закрытый ключ, ему также понадобится парольная фраза для его использования. Вам нужно будет вводить эту парольную фразу при каждом использовании ключа, если только вы не добавите ключ в SSH-агент, который запоминает вашу парольную фразу.

Читать  Bitwarden использует GPL3, чтобы не было сомнений: это бесплатное программное обеспечение

После выполнения этих действий вы создадите открытый ключ (id_rsa.pub) и закрытый ключ (id_rsa), которые будут храниться в каталоге .ssh на вашем локальном компьютере. Эти ключи являются основой для безопасной аутентификации SSH, обеспечивая зашифрованное подключение к удалённым серверам.

 

Скопируйте Открытый ключ на сервер Ubuntu

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

Использование скрипта ssh-copy-id

Выполните команду ssh-copy-id: самый простой и эффективный способ скопировать ваш открытый ключ на сервер — использовать команду ssh-copy-id. Эта команда автоматизирует процесс, делая его менее подверженным ошибкам. Введите в терминале приведенную ниже команду:

ssh-copy-id имя_пользователя@server_ip

 

Замените имя_пользователя на своё реальное имя пользователя на сервере, а ip_сервера на IP-адрес сервера.

Аутентификация: после выполнения команды вам будет предложено ввести пароль для сервера. Этот шаг важен, так как он подтверждает ваше распознавание и обеспечивает доступ к серверу. После успешной аутентификации скрипт ssh-copy-id автоматически копирует ваш открытый ключ в файл ~/.ssh/authorized_keys на сервере. Это позволяет серверу распознавать ваш ключ и обеспечивает безопасное подключение без необходимости вводить пароль в будущем.

 

Скопируйте Открытый ключ Вручную

Если скрипт ssh-copy-id недоступен, вы всё равно можете скопировать свой открытый ключ вручную. Хотя этот процесс требует выполнения нескольких дополнительных шагов, он не менее эффективен.

Отображение содержимого открытого ключа: сначала вам нужно просмотреть содержимое вашего открытого ключа. Это можно сделать, введя в терминале приведенную ниже команду:

cat ~/.ssh/id_rsa.pub

 

Эта команда отобразит ваш открытый ключ на экране терминала.

 

Скопируйте вывод: внимательно выделите и скопируйте весь отображаемый текст ключа. Убедитесь, что в тексте нет лишних пробелов или новых строк, так как это может вызвать проблемы при добавлении ключа на сервер.

Войдите на сервер и создайте файл ключа: затем вам нужно войти на сервер, используя существующий метод аутентификации (имя пользователя и пароль). После входа проверьте, существует ли каталог ~/.ssh . Если нет, создайте его, выполнив команду:

mkdir -p ~/.ssh

 

Затем создайте или отредактируйте файл authorized_keys, чтобы добавить свой открытый ключ. Используйте следующую команду:

echo "your-public-key" >> ~/.ssh/authorized_keys

 

Не забудьте заменить ваш-открытый-ключ на фактический открытый ключ, который вы скопировали ранее.

 

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

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

 

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

Читать  Команды Linux Как предотвратить ошибку SSH Broken Pipe

 

Совместное использование Cat и SSH

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

cat ~/.ssh/id_rsa.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

 

В этой команде часть cat ~/.ssh/id_rsa.pub считывает ваш открытый ключ, а | (канал) отправляет вывод в команду SSH. Команда SSH входит в систему на вашем сервере и создаёт каталог ~/.ssh, если он ещё не существует, а затем добавляет ваш открытый ключ в файл authorized_keys. Этот метод быстрый и позволяет избежать необходимости вручную копировать и вставлять содержимое ключа, что делает его отличным выбором для пользователей, которые хотят упростить процесс настройки.

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

 

Войдите на удаленный сервер

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

Чтобы войти в систему, используйте команду SSH в вашем терминале:

ssh имя_пользователя@server_ip

 

Замените имя_пользователя на своё фактическое имя пользователя на сервере, а ip_сервера — на IP-адрес сервера. Эта команда инициирует SSH-соединение с удалённым сервером с использованием вашего открытого ключа для аутентификации.

 

Что происходит дальше:

  1. Установка соединения: при выполнении команды SSH ваш локальный компьютер пытается установить соединение с указанным сервером. Клиент SSH на вашем компьютере отправляет запрос на сервер, и если открытый ключ, который вы скопировали ранее, совпадает с закрытым ключом на вашем локальном компьютере, сервер предоставляет доступ.
  2. Процесс аутентификации: сервер проверяет файл ~/.ssh/authorized_keys на наличие вашего открытого ключа. Если он находит соответствующий ключ, то подтверждает ваше распознавание без использования пароля. Если всё настроено правильно, вам должен быть предоставлен прямой доступ к серверу.
  3. Успешный вход в систему: если подключение прошло успешно, ваш терминал изменится, показывая, что вы вошли в систему удалённого сервера. Обычно вы увидите приветственное сообщение, которое может содержать системную информацию или напоминание о времени последнего входа в систему.
  4. Управление сеансом: после входа в систему вы можете выполнять команды на удалённом сервере так же, как на локальном компьютере. Вы можете перемещаться по каталогам, управлять файлами, запускать скрипты и выполнять административные задачи без необходимости вводить пароль.

 

Настройка входа по SSH без пароля (необязательно)

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

Читать  Протокол RADIUS

Шаг 1: Запустите SSH-агент

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

eval "$(ssh-agent -s)"

 

Эта команда запускает SSH-агент и устанавливает соответствующие переменные платформы для вашего сеанса. Вы должны увидеть подтверждающее сообщение с идентификатором процесса агента, указывающее на успешное выполнение.

 

Шаг 2: Добавьте свой SSH-ключ к агенту

Как только агент SSH запустится, вы добавите свой закрытый ключ в агент. Это позволит агенту хранить ваш ключ в памяти в течение всего сеанса. Чтобы добавить ключ, используйте приведённую ниже команду:

ssh-add ~/.ssh/id_rsa

 

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

 

Необязательно: Настройте SSH-агент на автоматический запуск

Для более удобной работы вы можете настроить SSH-агент так, чтобы он запускался автоматически при входе в систему. Если вы используете дистрибутив Linux с графическим интерфейсом, вы часто можете найти в настройках среды рабочего стола параметры для управления приложениями, запускаемыми при входе в систему. Вот общий подход:

1. Измените конфигурацию оболочки: откройте файл конфигурации оболочки (например, ~/.bashrc~/.bash_profile или ~/.zshrc) в текстовом редакторе.

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

# Запустить SSH-агент
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

 

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

source ~/.bashrc  # или соответствующий файл, который вы редактировали

 

Заключение

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Онлайн-тест – это интерактивный инструмент, позволяющий оценить уровень знаний человека…

Спасибо!

Теперь редакторы в курсе.