- Как сгенерировать SSH-ключ для Linux: пошаговая инструкция
- Генерация SSH — ключей в Linux
- Авторизация на сервере с использованием SSH-ключей
- Заключение
- 4.3 Git на сервере — Генерация открытого SSH ключа
- Как сгенерировать SSH-ключ для доступа на сервер
- Введение
- SSH-ключ для Linux/MacOS
- SSH-ключ для Windows
- Заключение
- Зарегистрируйтесь в панели управления
Как сгенерировать 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 .
2. После выполнения команды запустится генерация ключей и терминал выведет следующее сообщение:
На данном этапе программа ssh-keygen предлагает пользователю ввести новый путь для хранения генерируемой пары ключей. Закрытый ключ будет записан как id_rsa, а публичный — id_rsa.pub. Чтобы пропустить этот этап и использовать каталог по умолчанию, достаточно нажать кнопку «Enter».
Также может возникнуть ситуация, в которой пользователь уже генерировал пару SSH-ключей ранее. В таком случае система выведет в консоль сообщение, продемонстрированное на картинке ниже.
Служба предлагает пользователю перезаписать уже существующие ключи на новые. Но стоит иметь в виду, что при перезаписи пользователь не сможет больше выполнять подключение к серверу используя старую пару ключей. При подтверждении данной операции они будут уничтожены. Чтобы отказаться от перезаписи, достаточно ввести в строку терминала «n».
3. Следующим сообщением в терминале будет:
Служба предложит пользователю ввести кодовую фразу для дополнительной безопасности генерируемого приватного ключа. Ее нужно будет вводить каждый раз, когда пользователь захочет получить доступ к нему на личном компьютере. Ключевая фраза обеспечит дополнительную защиту при попытке хищения и использования приватного ключа. Это необязательная, но рекомендуемая процедура. Чтобы пропустить данный этап и следующий, в котором пользователь подтверждает указанную ключевую фразу, нужно нажать «Enter» два раза.
4. По завершении генерации ключей в терминал будет выведено сообщение, продемонстрированное на картинке ниже.
Оно означает, что пара SSH-ключей благополучно сгенерирована. Единственное, что осталось сделать — это скопировать открытый ключ на удаленный сервер. Он выгружается в отдельный для этого файл — ~/.ssh/authorized_keys . После этого можно использовать сетевой протокол в полной мере и выполнять удаленное подключение по SSH в Linux .
Авторизация на сервере с использованием SSH-ключей
Чтобы авторизоваться по SSH-ключу в Linux, необходимо в первую очередь добавить открытый ключ на сервер. Сначала копируем его, используя команду терминала:
Результатом выполнения команды будет сгенерированный ранее открытый ключ, как показано на картинке ниже.
Если вы пользуетесь облачными серверами 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 , которая позволяет сохранить ключ в формате, более устойчивом ко взлому методом подбора, чем стандартный формат.
Теперь каждый пользователь должен отправить свой открытый ключ вам или тому, кто администрирует 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.
Как сгенерировать SSH-ключ для доступа на сервер
Разбираемся, как создать шифрованный протокол для связи с сервером и входить в систему без пароля учетной записи.
Введение
Использование SSH-ключей — простой и надежный способ обеспечения безопасности соединения с сервером. В отличие от пароля, взломать SSH-ключ практически невозможно. Сгенерировать SSH-ключ очень просто.
SSH-ключ для Linux/MacOS
Откройте терминал и выполните команду:
На консоль будет выведен следующий диалог:
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Нажмите на клавишу Enter. Далее система предложит ввести кодовую фразу для дополнительной защиты SSH-подключения:
Enter passphrase (empty for no passphrase):
Этот шаг можно пропустить. При ответе на этот и следующий вопрос просто нажмите клавишу Enter.
После этого ключ будет создан, а на консоль будет выведено следующее сообщение:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
476:b2:a8:7f:08:b4:c0:af:81:25:7e:21:48:01:0e:98 user@localhost
The key's randomart image is:
+--[ RSA 2048]----+
|+.o. |
|ooE |
|oo |
|o.+.. |
|.+.+.. S . |
|. + o + |
| .o . |
| . .. . |
| . |
+-----------------+
Далее выполните в терминале команду:
На консоль будет выведен ключ. Скопируйте его и вставьте в соответствующее поле:
Нажмите на кнопку «Добавить».
Добавив ключ, выполните в терминале команду:
После этого соединение с сервером будет установлено. Вводить пароль при этом не потребуется.
SSH-ключ для Windows
В OC Windows подключение к удаленным серверам по SSH возможно, например, с помощью клиента Putty. Скачать его можно здесь (ссылка взята с официального сайта). Putty не требует установки — чтобы начать с ним работать, достаточно просто распаковать скачанный архив.
По завершении распаковки запустите файл puttygen.exe.
Выберите тип ключа SSH-2 RSA и длину 2048 бит, а затем нажмите на кнопку Generate:
Во время генерации водите курсором в пустой области окна (это нужно для создания псевдослучайности):
Сохраните сгенерированную пару ключей на локальной машине (кнопки Save public key и Save private key).
Скопируйте сгененированный ключ и вставьте его в соответствующее поле.
Заключение
В этой инструкции мы рассмотрели, как создать шифрованный протокол для связи с сервером: сгенерировали SSH-ключ для Linux/MacOS и Windows. Теперь вы можете входить в систему без пароля учетной записи.
Зарегистрируйтесь в панели управления
И уже через пару минут сможете арендовать сервер, развернуть базы данных или обеспечить быструю доставку контента.