PowerShell-утилита для генерации и управления SSH-ключами на Windows. Заточена под ноды RemnaWave, но работает с любыми ed25519-ключами.
- Генерация ed25519 ключей (по одному или пачкой)
- Папки на каждую ноду, автокопирование
.pubв буфер обмена - Поиск всех ключей в выбранной директории (рекурсивно)
- Удаление ключа с очисткой пустой папки
- Опциональный passphrase через флаг (по умолчанию ключи без пароля - под автоматизацию)
- Добавление записи в
~/.ssh/config(Host / HostName / User / Port / IdentityFile) - Деплой публичного ключа на сервер - аналог
ssh-copy-idдля Windows - Fingerprint ключа сразу после генерации
- Запоминание пути к папке между запусками
- Windows 10 / 11
- OpenSSH Client (Settings -> Apps -> Optional features -> OpenSSH Client)
- PowerShell 5.1 или новее
irm https://raw.githubusercontent.com/jestivald/ssh-keys-manager/main/ssh-keys.ps1 | iex.\ssh-keys.ps1 # интерактивное меню
.\ssh-keys.ps1 new # сразу генерация
.\ssh-keys.ps1 new -Passphrase # генерация с паролем на ключ
.\ssh-keys.ps1 list # список всех ключей
.\ssh-keys.ps1 remove # удаление
.\ssh-keys.ps1 config # добавить ключ в ~/.ssh/config
.\ssh-keys.ps1 deploy # залить ключ на серверЕсли PowerShell ругается на политику выполнения:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass[1] Создать ключ(и)
[2] Список ключей
[3] Удалить ключ
[4] Добавить в ~/.ssh/config
[5] Залить ключ на сервер
[0] Выход
[1]создать ключ с именем ноды (напримерde-fra-01).- Публичный ключ уже в буфере - вставить в панель RemnaWave (Ctrl+V).
- На вопрос "Добавить в ~/.ssh/config?" ответить
y- указать IP, user, port. - Подключаться обычной командой:
ssh de-fra-01.
Если панелью не пользуешься, шаг 2 заменяется на [5] Залить на сервер - ключ уйдёт в ~/.ssh/authorized_keys сам.
- Ключи: путь, который ты задал (по умолчанию
Desktop\ssh-keys). Каждая нода - своя подпапка. - Конфиг утилиты:
%APPDATA%\ssh-keys-manager\config.json. Если у тебя был старый файл~/.ssh-keys-manager.json- он перенесётся автоматически при первом запуске. - Записи
Hostпишутся в~/.ssh/config(создаётся, если нет).
- Алгоритм ed25519 - современный, быстрый, короткие ключи.
- По умолчанию ключи генерируются без passphrase. Это удобно для автоматизации, но если ключ попадёт чужим - доступ открыт. Для ценных серверов используй
-Passphrase. - Приватный ключ - это файл без
.pub. Никогда никому не отправляй и не коммить. - На сервер уходит только содержимое
.pub.
- Раньше скрипт генерировал ключи с литеральным паролем
""из-за того, как PowerShell обрабатывает пустые кавычки. Сейчас это исправлено - ключ действительно без пароля. Старые ключи можно проверить так:ssh-keygen -y -P "" -f <путь_к_приватному>. Если команда просит пароль - на ключе сидит"", проще пересоздать. - При первом подключении через
[5] deployхост добавится вknown_hostsавтоматически (StrictHostKeyChecking=accept-new).
MIT