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

SSH-ключи — это учетные данные для доступа, используемые в протоколе SSH (Secure Shell). Secure Shell — это сетевой протокол, который позволяет безопасно выполнять вход с одного компьютера на другой, а также управлять сетями, операционными системами и конфигурациями. По функциональности SSH-ключи почти идентичны паролям, но вход на сервер с помощью SSH-ключей более безопасен, чем использование только паролей, поскольку расшифровать ключ очень сложно, практически невозможно.
SSH-ключи всегда идут парами, и каждая пара состоит из открытого (публичного) ключа и закрытого (приватного) ключа. Это два типа ключей.
- Открытые (публичные) ключи, также известные как авторизованные ключи, определяют, кто может получить доступ к каждой системе.
- Закрытые (приватные) или идентификационные ключи идентифицируют пользователей и предоставляют им доступ.
Как настроить SSH-ключи?
Для создания SSH-ключей требуются алгоритмы асимметричной криптографии, наиболее распространенными из которых являются ключи Ed25519 и RSA. Настройка SSH-ключей выполняется с помощью инструмента генерации ключей.
Создание SSH-ключа на Mac и Linux
Поскольку обе эти операционные системы имеют современные терминальные приложения, которые интегрируются с пакетом SSH, шаги создания SSH-ключа для них одинаковы.
- Откройте командный терминал и выполните следующую команду:
настройка SSH-ключа
ssh-keygen -t ed25519 -C "[email protected]"- Затем вам нужно выбрать место для сохранения файла.
сохранение SSH-ключа
> Enter a file in which to save the key (~/.ssh/id_ed25519): [Press enter]- Затем следует добавить безопасную парольную фразу, которая будет запрашиваться каждый раз при использовании SSH-ключа.
установка пароля для SSH-ключа
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]- Добавьте новый 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, чтобы автоматически сохранять ключи в связке ключей.)
- Скопируйте открытый ключ на удаленный сервер. Чтобы использовать ключ для аутентификации, вы должны добавить его в файл
~/.ssh/authorized_keysудаленного сервера. Выполните следующую команду с вашего локального компьютера:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote_host- Проверьте подключение. Проверьте возможность входа на удаленный сервер с помощью нового ключа:
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?