Как создать SSH-ключ на Windows, Linux и macOS

Как создать SSH-ключ на Windows, Linux и macOS
0
29

SSH-ключ нужен, чтобы подключаться к VPS и работать с GitHub или GitLab без постоянного ввода пароля от учётной записи. Создание занимает несколько минут: достаточно выполнить одну команду и сохранить два файла. Публичный ключ добавляют на сервер или в сервис, а приватный оставляют на своём компьютере.

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

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

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

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

Компьютер подтверждает вход приватным SSH-ключом, а VPS проверяет его с помощью публичного ключа.

Какой тип ключа выбрать

Для нового ключа подойдёт Ed25519. Этот вариант поддерживают современные версии OpenSSH, GitHub и GitLab. Команда выглядит так:

ssh-keygen -t ed25519 -C "you@example.com"

Вместо you@example.com укажите свою почту или понятное название, например work-laptop. Эта подпись помогает отличать ключи и не влияет на подключение.

На старом сервере Ed25519 может не поддерживаться. В таком случае создайте RSA-ключ на 4096 бит:

ssh-keygen -t rsa -b 4096 -C "you@example.com"

Как создать SSH-ключ

Основная команда одинаково работает в Windows, Linux и macOS. Отличается только программа, в которой её нужно выполнить.

  1. В Windows откройте PowerShell или Windows Terminal. В Linux и macOS откройте «Терминал».
  2. Выполните команду ssh-keygen -t ed25519 -C «you@example.com».
  3. Когда программа предложит выбрать папку, нажмите Enter. Ключ сохранится в стандартном месте.
  4. Придумайте кодовую фразу и введите её два раза. Символы во время ввода не показываются — это нормальная работа терминала.

После этого программа покажет пути к двум созданным файлам. На Windows они находятся в папке пользователя, а в Linux и macOS — в скрытой папке .ssh.

СистемаПриватный ключПубличный ключ
WindowsC:\Users\<имя>\.ssh\id_ed25519C:\Users\<имя>\.ssh\id_ed25519.pub
Linux~/.ssh/id_ed25519~/.ssh/id_ed25519.pub
macOS~/.ssh/id_ed25519~/.ssh/id_ed25519.pub
Результат команды ssh-keygen с путями к приватному и публичному SSH-ключам.

Если программа спрашивает, нужно ли перезаписать существующий id_ed25519, ответьте n. Старый ключ может использоваться для другого сервера или аккаунта. Запустите команду ещё раз и при выборе пути укажите новое имя, например ~/.ssh/id_ed25519_work.

Какой файл можно передавать

После генерации появятся два файла с похожими названиями. Для добавления доступа нужен только файл с расширением .pub.

ФайлДля чего нужен
id_ed25519Приватный ключ. Остаётся на вашем компьютере
id_ed25519.pubПубличный ключ. Его добавляют на VPS, в GitHub или GitLab

Публичный ключ выглядит как одна длинная строка, начинающаяся с ssh-ed25519. Копировать нужно всю строку целиком. Приватный файл нельзя отправлять в чат, прикладывать к тикету поддержки или загружать в Git.

Приватный SSH-ключ остаётся на компьютере, а публичный добавляют на VPS, GitHub или GitLab.

Как скопировать публичный ключ

В Windows откройте PowerShell и выполните команду:

Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard

Содержимое публичного ключа попадёт в буфер обмена. Его можно сразу вставить в панель хостинга, GitHub или GitLab.

В macOS используйте такую команду:

pbcopy < ~/.ssh/id_ed25519.pub

В Linux выведите ключ в терминал и скопируйте показанную строку:

cat ~/.ssh/id_ed25519.pub

Как добавить ключ на VPS

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

На Linux и macOS ключ можно отправить на уже работающий сервер командой:

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip

Замените user именем пользователя, а server_ip — IP-адресом VPS. При выполнении команда попросит текущий пароль от сервера и добавит публичный ключ в настройки выбранного пользователя.

После этого проверьте вход:

ssh user@server_ip

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

Как добавить ключ в GitHub или GitLab

В GitHub откройте Settings → SSH and GPG keys → New SSH key. Укажите название компьютера, вставьте содержимое id_ed25519.pub и сохраните ключ. Проверить подключение можно командой:

ssh -T git@github.com

В GitLab откройте настройки профиля и найдите раздел SSH Keys. Вставьте публичный ключ, добавьте понятное название и сохраните. Для проверки используйте:

ssh -T git@gitlab.com

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

Что делать, если подключение не работает

Большинство ошибок связано с отсутствующим OpenSSH, перезаписью старого ключа или неверным логином на сервере. Начните с сообщения, которое показывает терминал.

СообщениеЧто делать
ssh-keygen не найденВ Windows установите дополнительный компонент OpenSSH Client. В Ubuntu и Debian понадобится пакет openssh-client
id_ed25519 already existsСохраните новый ключ под другим именем, чтобы не потерять действующий доступ
Permission denied (publickey)Проверьте логин, адрес сервера и убедитесь, что добавили файл с расширением .pub
Кодовая фраза будто не вводитсяТерминал скрывает символы. Введите фразу и нажмите Enter

Если вы добавляете ключ на VPS, не отключайте вход по паролю до проверки. Откройте второе окно терминала и убедитесь, что новое подключение работает. Текущую сессию лучше оставить открытой, пока проверка не завершена.

Как хранить SSH-ключи

Публичный файл .pub можно добавлять в сервисы и передавать администратору. Приватный ключ должен оставаться у владельца. Для рабочего и личного компьютера лучше создать разные пары: при потере одного устройства доступ можно будет отозвать отдельно.

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

Что изучать дальше

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

★ Где этому научиться

Курс «Основы администрирования Linux» в Академии IT DMS

✓Ubuntu Server, командная строка и Bash-скрипты
✓Права доступа, процессы и свой VPN-сервер в облаке
✓Виртуализация KVM, Docker и защита сервера с iptables

Сертификат или удостоверение о повышении квалификации.

Перейти к курсу →ПромокодAFFTIMES

−5 % на первую покупку. Скидка суммируется с любыми акциями школы. Если оплачиваете через менеджера в чате, назовите ему промокод.

Для практики можно подключиться к тестовому VPS, загрузить небольшой проект из Git-репозитория и запустить его на сервере. Если сервер ещё не выбран, сначала разберитесь, как выбрать хостинг для сайта и чем VPS отличается от обычного хостинга.

FAQ

Как создать SSH-ключ в Windows 11?

Откройте PowerShell и выполните ssh-keygen -t ed25519 -C "you@example.com". Нажмите Enter, чтобы сохранить ключ в стандартной папке, затем задайте кодовую фразу. Готовые файлы появятся в C:\Users\<имя>\.ssh.

Какой SSH-ключ выбрать: Ed25519 или RSA?

Для современного сервера, GitHub и GitLab обычно подходит Ed25519. RSA на 4096 бит используют, если Ed25519 не поддерживается старой системой или запрещён правилами организации.

Где находится публичный SSH-ключ?

В Linux и macOS это файл ~/.ssh/id_ed25519.pub. В Windows он хранится по адресу C:\Users\<имя>\.ssh\id_ed25519.pub. Публичный файл всегда имеет расширение .pub.

Можно ли отправлять файл id_ed25519.pub?

Да, этот файл предназначен для добавления на сервер или в настройки сервиса. Файл id_ed25519 без расширения является приватным, поэтому его передавать нельзя.

Почему SSH снова спрашивает пароль?

Сервер может не найти добавленный публичный ключ или искать его у другого пользователя. Проверьте логин, IP-адрес и место, куда добавили ключ. Запрос Enter passphrase for key относится к кодовой фразе самого ключа, а не к паролю от сервера.

Валерия Шлегель
Валерия Шлегель
Автор
(Проголосовать за статью)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

X