Создание SSH-ключа (Windows, macOS, Linux)
Как создать пару SSH-ключей, где лежат файлы и как добавить публичный ключ в BLACKBOX.
На этой странице
SSH-ключ позволяет входить на сервер без пароля. Ключ — это пара файлов. Приватный ключ хранится только на вашем компьютере. Публичный ключ вы передаёте в BLACKBOX: на странице «SSH-ключи» (blackbox.md/ru/account/ssh-keys, «Мой аккаунт» → «SSH-ключи») или прямо на сервер из панели app.blackbox.md («Мои серверы» → «Добавить SSH-ключ»).
Доступно: любому пользователю на своём компьютере. Добавить ключ в аккаунт и на сервер может владелец аккаунта blackbox.md.
Какой тип ключа выбрать
| Тип | Строка публичного ключа начинается с | Когда использовать |
|---|---|---|
| Ed25519 (рекомендуем) | ssh-ed25519 |
почти всегда: короткий, быстрый и надёжный ключ |
| RSA 4096 | ssh-rsa |
только если программа или сервис требует RSA |
| Ed25519 на аппаратном ключе | sk-ssh-ed25519@openssh.com |
если у вас есть ключ безопасности FIDO2 (см. ниже) |
BLACKBOX принимает ключи типов ssh-ed25519, ssh-rsa (не менее 2048 бит), ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, sk-ssh-ed25519@openssh.com и sk-ecdsa-sha2-nistp256@openssh.com. Ключи DSA (ssh-dss) и RSA-ключи короче 2048 бит не принимаются.
Создание ключа в macOS и Linux
Откройте приложение «Терминал».
Выполните команду ниже. Замените комментарий
laptop-ivanназванием, по которому вы узнаете компьютер:ssh-keygen -t ed25519 -C "laptop-ivan"На запрос «Enter file in which to save the key» нажмите Enter. Ключ сохранится в стандартное место —
~/.ssh/id_ed25519.На запрос «Enter passphrase» введите парольную фразу (passphrase), затем повторите её на запрос «Enter same passphrase again». Вводимые символы не отображаются.
В конце ssh-keygen покажет, куда сохранены оба файла, и отпечаток ключа вида
SHA256:….
Парольная фраза шифрует приватный ключ: тот, кто скопирует файл, не сможет воспользоваться им без неё. Можно дважды нажать Enter и создать ключ без парольной фразы, но мы этого не рекомендуем.
Комментарий из параметра -C записывается в конец публичного ключа. По нему вы узнаете ключ в панели, в списке «Установленные ключи».
Если программа требует RSA-ключ, создайте его так (файлы будут называться id_rsa и id_rsa.pub):
ssh-keygen -t rsa -b 4096 -C "laptop-ivan"Если ssh-keygen спрашивает «already exists. Overwrite (y/n)?», введите n. Ключ с таким именем у вас уже есть: если его перезаписать, вы потеряете доступ к серверам, на которых установлен старый ключ. Используйте существующий ключ или создайте новый с другим именем файла:
ssh-keygen -t ed25519 -C "laptop-ivan" -f ~/.ssh/id_ed25519_blackboxСоздание ключа в Windows
PowerShell
В Windows 10 и 11 уже есть клиент OpenSSH, поэтому команда та же.
Откройте PowerShell (меню «Пуск» → введите «PowerShell»).
Выполните:
ssh-keygen -t ed25519 -C "laptop-ivan"Ответьте на вопросы так же, как в macOS и Linux: Enter для стандартного места, затем дважды парольная фраза.
Файлы сохраняются в папку .ssh вашего профиля: C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\.ssh\. Если Windows сообщает, что ssh-keygen не распознан как команда, добавьте компонент OpenSSH Client в параметрах Windows, в разделе дополнительных компонентов.
PuTTYgen
PuTTYgen пригодится, если вы подключаетесь через PuTTY. Он устанавливается вместе с PuTTY.
- Откройте PuTTYgen. Внизу, в разделе «Type of key to generate», выберите «EdDSA», а в списке рядом — «Ed25519 (255 bits)». В старых версиях этот вариант называется просто «ED25519».
- Нажмите «Generate» и водите мышью по пустой области окна, пока не заполнится индикатор.
- В поле «Key comment» замените стандартный текст своим названием, например
laptop-ivan. - Заполните поля «Key passphrase» и «Confirm passphrase».
- Нажмите «Save private key» и сохраните файл
.ppk. Именно его вы будете выбирать в PuTTY. - Скопируйте весь текст из поля «Public key for pasting into OpenSSH authorized_keys file». Это одна строка, которая начинается с
ssh-ed25519, и именно её вы вставляете в BLACKBOX.
Не используйте файл, сохранённый кнопкой «Save public key»: он начинается с ---- BEGIN SSH2 PUBLIC KEY ----, занимает несколько строк и не принимается. Чтобы пользоваться этим же ключом и в ssh из PowerShell, выберите «Conversions» → «Export OpenSSH key» и сохраните файл как C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\.ssh\id_ed25519 без расширения. Обратное преобразование — из OpenSSH в .ppk — описано в статье Подключение к серверу по SSH (Windows, macOS, Linux).
Где лежат файлы
| Файл | Что это | Что с ним делать |
|---|---|---|
~/.ssh/id_ed25519 (в Windows: C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\.ssh\id_ed25519) |
приватный ключ | остаётся на компьютере, им пользуется SSH-клиент |
~/.ssh/id_ed25519.pub (в Windows: C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\.ssh\id_ed25519.pub) |
публичный ключ | вставляется в BLACKBOX |
файл .ppk, сохранённый в PuTTYgen |
приватный ключ в формате PuTTY | выбирается в PuTTY или WinSCP |
У RSA-ключа файлы называются id_rsa и id_rsa.pub и лежат в той же папке.
Внимание Никому не передавайте приватный ключ — даже поддержке BLACKBOX — и не вставляйте его ни в какие формы: для BLACKBOX нужен только публичный ключ. Приватный ключ — это файл без
.pubили текст, который начинается с-----BEGIN.
Как показать и скопировать публичный ключ
В macOS и Linux:
cat ~/.ssh/id_ed25519.pubВ Windows (PowerShell):
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pubКоманда выводит одну строку. Скопируйте её целиком:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI… laptop-ivanОтпечаток ключа можно посмотреть командой ниже (в Windows — с путём $env:USERPROFILE\.ssh\id_ed25519.pub). Значение SHA256:… совпадает с тем, что BLACKBOX показывает в столбце «Отпечаток», а для серверов «только по ключу» — и в письме с темой «Serverul dvs. este gata».
ssh-keygen -lf ~/.ssh/id_ed25519.pubКак добавить публичный ключ в BLACKBOX
| Ситуация | Куда добавить ключ |
|---|---|
| Вы собираетесь заказать новый сервер | «Мой аккаунт» → «SSH-ключи», затем отметить ключ при заказе |
| Сервер уже работает | панель → «Мои серверы» → «Добавить SSH-ключ» |
| Вы уже можете подключиться к серверу (Linux, macOS) | из терминала, командой ssh-copy-id |
В аккаунте — для новых серверов
- Войдите на blackbox.md, нажмите «Личный кабинет» и выберите «SSH-ключи» в меню слева.
- В карточке «Добавить SSH-ключ» заполните «Название ключа» (не более 80 символов) и вставьте строку в поле «Публичный SSH-ключ».
- Нажмите «Добавить ключ». Ключ появится в таблице со столбцами «Тип» и «Отпечаток».
- При заказе сервера на шаге «SSH-ключ для сервера» отметьте ключ в разделе «Сохранённые ключи». Флажок «Отключить вход по паролю (только SSH-ключ)» установится автоматически. Если его не снимать, сервер будет создан «только по ключу».
Сохранение в аккаунте не устанавливает ключ на уже работающие серверы. Подробнее: SSH-ключи в аккаунте (blackbox.md) и SSH-ключ при заказе и серверы «только по ключу».
На работающий сервер
- Откройте панель app.blackbox.md («Мой аккаунт» → «Панель управления») и перейдите в «Мои серверы».
- На карточке сервера нажмите «Добавить SSH-ключ».
- Выберите «Использовать сохранённый ключ» и нужный ключ в списке «Выберите ключ…» либо «Вставить новый ключ» и вставьте строку.
- Нажмите «Добавить ключ». Появится сообщение «Ключ добавлен.», а ключ отобразится в списке «Установленные ключи».
Панель устанавливает ключ для root, и для этого ей не нужны ни ваш пароль, ни старые ключи. Подробнее: Добавление и удаление SSH-ключей на сервере.
Из терминала с помощью ssh-copy-id
В Linux и macOS публичный ключ можно добавить на сервер командой ssh-copy-id. Она работает, только если вы уже можете подключиться: по паролю на сервере «Пароль + ключ» или другим установленным ключом.
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@IP_СЕРВЕРАЕсли появится запрос, введите пароль root. После этого ключ появится и в панели, в списке «Установленные ключи», но в «SSH-ключи» не сохранится. В Windows ssh-copy-id нет — используйте панель.
Проверьте подключение
ssh -i ~/.ssh/id_ed25519 root@IP_СЕРВЕРАЕсли у ключа есть парольная фраза, SSH спросит «Enter passphrase for key»: введите фразу ключа, а не пароль сервера. Пошаговые инструкции для каждой системы — в статье Подключение к серверу по SSH (Windows, macOS, Linux). Когда вход по ключу заработает, вход по паролю можно отключить в панели: Включение и отключение входа по паролю по SSH.
Удобнее: ssh-agent и файл config
ssh-agent
SSH-агент хранит расшифрованный ключ в памяти, чтобы вам не приходилось вводить парольную фразу при каждом подключении. В macOS и Linux:
ssh-add ~/.ssh/id_ed25519Если ssh-add не может подключиться к агенту (например, появляется сообщение «Could not open a connection to your authentication agent»), запустите агент в текущем терминале и повторите ssh-add:
eval "$(ssh-agent -s)"В Windows служба агента по умолчанию отключена. Включите её один раз в PowerShell, запущенном от имени администратора:
Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agentЗатем в обычном PowerShell:
ssh-add $env:USERPROFILE\.ssh\id_ed25519Посмотреть ключи, загруженные в агент:
ssh-add -lФайл ~/.ssh/config
В файле ~/.ssh/config серверу можно дать короткое имя. В Windows это файл C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\.ssh\config без расширения .txt. Добавьте блок:
Host server-web
HostName IP_СЕРВЕРА
User root
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yesПосле этого для подключения достаточно команды:
ssh server-webЭто имя работает и в scp, и в rsync: Передача файлов на сервер (scp, rsync, SFTP). Параметр IdentitiesOnly yes заставляет SSH предлагать только указанный ключ, поэтому не возникает ошибка «Too many authentication failures», даже если ключей у вас много.
Аппаратные ключи безопасности (FIDO2)
С ключом безопасности FIDO2 (например, YubiKey) секретная часть остаётся на устройстве. На компьютере нужен OpenSSH 8.2 или новее. Проверьте версию:
ssh -VПодключите ключ безопасности к компьютеру.
Выполните:
ssh-keygen -t ed25519-sk -C "yubikey-ivan"Когда ssh-keygen выведет «You may need to touch your authenticator», коснитесь ключа, затем задайте парольную фразу, как описано выше.
Будут созданы файлы id_ed25519_sk (ссылка на устройство — сохраните её) и id_ed25519_sk.pub, который начинается с sk-ssh-ed25519@openssh.com. Публичный ключ добавляется в BLACKBOX так же, как остальные. При каждом подключении ключ безопасности должен быть подключён к компьютеру, и его нужно коснуться.
Если устройство не поддерживает Ed25519, ssh-keygen выдаст ошибку. Тогда создайте ключ ECDSA — BLACKBOX принимает и его:
ssh-keygen -t ecdsa-sk -C "yubikey-ivan"В macOS встроенный OpenSSH может не поддерживать ключи FIDO2: тогда ssh-keygen выдаёт ошибку и для ed25519-sk, и для ecdsa-sk. В этом случае установите OpenSSH из Homebrew, откройте новое окно терминала и повторите команду:
brew install opensshРезервная копия и потеря ключа
Храните копию приватного ключа и парольной фразы в надёжном месте, например в менеджере паролей или на зашифрованной флешке. Забытую парольную фразу восстановить нельзя.
Парольную фразу можно сменить, не меняя сам ключ:
ssh-keygen -p -f ~/.ssh/id_ed25519Надёжнее всего создавать отдельный ключ для каждого компьютера: если устройство потеряется, достаточно отозвать только его ключ.
Если ключ потерян или компьютер украден, создайте новый ключ и добавьте его через панель, вариант «Вставить новый ключ». Затем удалите старый ключ из списка «Установленные ключи» на каждом сервере и со страницы «SSH-ключи».
Важно На сервере «Только ключ» без приватного ключа подключиться по SSH нельзя, а веб-консоли у клиентов нет. Если панель тоже не помогает, воспользуйтесь статьёй Потерян доступ к серверу (пароль или ключ).
Частые вопросы
Я потерял файл .pub, но приватный ключ остался. Что делать?
Команда ниже снова выведет публичный ключ — скопируйте его. В Windows используйте путь $env:USERPROFILE\.ssh\id_ed25519.
ssh-keygen -y -f ~/.ssh/id_ed25519Почему страница «SSH-ключи» не принимает мой ключ? Чаще всего вставлен приватный ключ, несколько строк или RSA-ключ короче 2048 бит. Все сообщения об ошибках разобраны в статье SSH-ключи в аккаунте (blackbox.md).
Я создал ключ без парольной фразы. Можно добавить её позже? Да, той же командой, что и для смены парольной фразы (см. раздел выше). Публичный ключ при этом не меняется, поэтому заново добавлять его на серверы не нужно.