Генерация открытого ssh ключа linux

Как сгенерировать SSH-ключ для Linux: пошаговая инструкция

SSH — это сетевой протокол, обеспечивающий удаленное подключение и управление операционной системой в безопасном режиме, в том числе и Linux. Зачастую он используется для удаленного управления серверами через терминал.

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

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

Генерация SSH ключей в Linux

Чтобы настроить безопасное удаленное подключение к серверу, необходимо для начала сгенерировать пару ключей SSH на личном компьютере. Выполнять генерацию будем на операционной системе Ubuntu 20.04. А поможет нам в этом специальная утилита ssh-keygen, которая предназначена для создания и управления ключами.

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

Флаг -t указывает на тип ключа при его создании. В нашем случае это RSA, но также допустимы и другие. Это dsa, ecdsa или ed25519.

Также стоит отметить флаги -p и -l , которые можно использовать при необходимости. Первый позволяет изменить ключевое слово (passphrase) к приватному ключу, а второй показывает отпечаток публичного ключа.

Подробнее про публичный и приватный ключ можно прочитать в инструкции по генерации SSH-ключей для Windows .

Читайте также:  Linux сбросить сессию пользователя

2. После выполнения команды запустится генерация ключей и терминал выведет следующее сообщение:

На данном этапе программа ssh-keygen предлагает пользователю ввести новый путь для хранения генерируемой пары ключей. Закрытый ключ будет записан как id_rsa, а публичный — id_rsa.pub. Чтобы пропустить этот этап и использовать каталог по умолчанию, достаточно нажать кнопку «Enter».

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

Служба предлагает пользователю перезаписать уже существующие ключи на новые. Но стоит иметь в виду, что при перезаписи пользователь не сможет больше выполнять подключение к серверу используя старую пару ключей. При подтверждении данной операции они будут уничтожены. Чтобы отказаться от перезаписи, достаточно ввести в строку терминала «n».

3. Следующим сообщением в терминале будет:

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

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

Оно означает, что пара SSH-ключей благополучно сгенерирована. Единственное, что осталось сделать — это скопировать открытый ключ на удаленный сервер. Он выгружается в отдельный для этого файл — ~/.ssh/authorized_keys . После этого можно использовать сетевой протокол в полной мере и выполнять удаленное подключение по SSH в Linux .

Авторизация на сервере с использованием SSH-ключей

Чтобы авторизоваться по SSH-ключу в Linux, необходимо в первую очередь добавить открытый ключ на сервер. Сначала копируем его, используя команду терминала:

Читайте также:  Linux mint терминал на русском

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

Если вы пользуетесь облачными серверами Timeweb Cloud, то можете добавить публичный ключ в разделе « SSH-ключи » в панели управления. Для этого переходим в соответствующий раздел и вставляем публичный SSH-ключ, как показано на картинке ниже.

Добавив публичный ключ, можно переходить к удаленному подключению к серверу.

Для этого переходим в терминал и вводим следующее:

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

Если все выполнено верно, то после выполнения команды произойдет удаленное подключение к серверу. Если оно выполняется впервые, то система может выдать предупреждение о том, что компьютеру не удается распознать удалённый хост. Чтобы исправить это, нужно ввести «Yes» и нажать кнопку «Enter». После этого компьютер запомнит его.

Заключение

В данной инструкции был рассмотрен весь процесс г енерации пары SSH-ключей для Linux . Кроме того, мы рассказали как их правильно использовать и как настроить удаленное подключение к облачному серверу на примере Timeweb Cloud .

Источник

4.3 Git на сервере — Генерация открытого SSH ключа

Как отмечалось ранее, многие Git-серверы используют аутентификацию по открытым SSH-ключам. Для того чтобы предоставить открытый ключ, каждый пользователь в системе должен его сгенерировать, если только этого уже не было сделано ранее. Этот процесс аналогичен во всех операционных системах. Сначала вам стоит убедиться, что у вас ещё нет ключа. По умолчанию пользовательские SSH ключи сохраняются в каталоге ~/.ssh домашнем каталоге пользователя. Вы можете легко проверить наличие ключа перейдя в этот каталог и посмотрев его содержимое:

$ cd ~/.ssh $ ls authorized_keys2 id_dsa known_hosts config id_dsa.pub

Ищите файл с именем id_dsa или id_rsa и соответствующий ему файл с расширением .pub . Файл с расширением .pub — это ваш открытый ключ, а второй файл — ваш приватный ключ. Если указанные файлы у вас отсутствуют (или даже нет каталога .ssh ), вы можете создать их используя программу ssh-keygen , которая входит в состав пакета SSH в системах Linux/Mac, а для Windows поставляется вместе с Git:

$ ssh-keygen -o Generating public/private rsa key pair. Enter file in which to save the key (/home/schacon/.ssh/id_rsa): Created directory '/home/schacon/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/schacon/.ssh/id_rsa. Your public key has been saved in /home/schacon/.ssh/id_rsa.pub. The key fingerprint is: d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local

Сначала программа попросит указать расположение файла для сохранения ключа ( .ssh/id_rsa ), затем дважды ввести пароль для шифрования. Если вы не хотите вводить пароль каждый раз при использовании ключа, то можете оставить его пустым или использовать программу ssh-agent . Если вы решили использовать пароль для приватного ключа, то настоятельно рекомендуется использовать опцию -o , которая позволяет сохранить ключ в формате, более устойчивом ко взлому методом подбора, чем стандартный формат.

Читайте также:  Установка vim arch linux

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

$ cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3 Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx NrRFi9wrf+M7Q== schacon@mylaptop.local

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

Источник

Оцените статью
Adblock
detector