W3docs

SSH-ключ

What are SSH key, what types do they have and how you can set it up on Mac, Linux or Windows? Find all the useful information and see codes.

Что такое SSH-ключи?

SSH Key

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

SSH-ключи всегда идут парами, и каждая пара состоит из открытого (публичного) ключа и закрытого (приватного) ключа. Это два типа ключей.

  1. Открытые (публичные) ключи, также известные как авторизованные ключи, определяют, кто может получить доступ к каждой системе.
  2. Закрытые (приватные) или идентификационные ключи идентифицируют пользователей и предоставляют им доступ.

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

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

Создание SSH-ключа на Mac и Linux

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

  1. Откройте командный терминал и выполните следующую команду:

настройка SSH-ключа

ssh-keygen -t ed25519 -C "[email protected]"
  1. Затем вам нужно выбрать место для сохранения файла.

сохранение SSH-ключа

> Enter a file in which to save the key (~/.ssh/id_ed25519): [Press enter]
  1. Затем следует добавить безопасную парольную фразу, которая будет запрашиваться каждый раз при использовании SSH-ключа.

установка пароля для SSH-ключа

> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]
  1. Добавьте новый SSH-ключ в ssh-agent. ssh-agent — это инструмент, отвечающий за хранение закрытых ключей, но он также обрабатывает запросы на подпись с помощью закрытых ключей в целях безопасности.

Выполните следующую команду, чтобы убедиться, что ssh-agent запущен:

SSH-ключ в Linux

eval "$(ssh-agent -s)"
> Agent pid 59566

Если ssh-agent запущен, добавьте новый SSH-ключ в локальный агент SSH, выполнив следующую команду:

SSH-ключ

ssh-add ~/.ssh/id_ed25519

(Примечание: В современных версиях macOS (OpenSSH 8.8+) команда ssh-add -K устарела. Вместо этого добавьте AddKeysToAgent yes в файл ~/.ssh/config, чтобы автоматически сохранять ключи в связке ключей.)

  1. Скопируйте открытый ключ на удаленный сервер. Чтобы использовать ключ для аутентификации, вы должны добавить его в файл ~/.ssh/authorized_keys удаленного сервера. Выполните следующую команду с вашего локального компьютера:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote_host
  1. Проверьте подключение. Проверьте возможность входа на удаленный сервер с помощью нового ключа:
ssh user@remote_host

Создание SSH-ключа на Windows

Для создания SSH-ключа в операционной системе Windows вам понадобится Git Bash. Откройте Git Bash и выполните следующую команду для генерации ключа:

ssh-keygen -t ed25519 -C "[email protected]"

Следуйте тем же подсказкам, что и выше, чтобы указать место сохранения файла и парольную фразу. После генерации ключа скопируйте его на удаленный сервер или в сервис хостинга Git с помощью команды ssh-copy-id или вставив содержимое файла id_ed25519.pub в настройки SSH-ключей сервиса.

Практика

Практика

Какие важные аспекты SSH-ключей существуют в контексте Git?