Генерация SSH-ключа на Windows (PuTTYgen / PowerShell) и вход на Linux без пароля
Почему вход по SSH-ключам намного удобнее и безопаснее паролей
Каждый раз вводить длинный сложный пароль при входе на сервер неудобно, а сохранение паролей в текстовых файлах угрожает безопасности. Асимметричная криптография SSH решает эту проблему. Вы создаете пару ключей: Закрытый (Private Key) хранится в строгом секрете на вашем компьютере с Windows, а Открытый (Public Key) копируется на удаленный сервер Linux. Сервер опознает ваш компьютер автоматически за доли секунды.
Структура пары ключей
| Тип ключа | Где хранится | Расширение файла | Правило безопасности |
|---|---|---|---|
| Private (Приватный) | На вашем ПК Windows | .ppk (PuTTY) или id_ed25519 | Секретно! Никому не передавать и не отправлять по почте. |
| Public (Публичный) | Копируется на Linux сервер | .pub | Открытый текст (можно публиковать везде). |
Способы генерации ключей и настройки входа
Способ 1: Современный стандарт через Windows PowerShell / CMD (Рекомендуемый)
В Windows 10/11 встроен официальный клиент OpenSSH. Откройте командную строку PowerShell на своем компьютере:
ssh-keygen -t ed25519 -C "my-windows-pc"Нажмите Enter для сохранения в папку по умолчанию (C:\Users\ВашеИмя\.ssh\id_ed25519). Парольную фразу (passphrase) можно оставить пустой, нажав Enter.
Скопируйте публичный ключ на удаленный Linux-сервер одной командой:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh ubuntu@IP_СЕРВЕРА "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"Способ 2: Генерация через графическую программу PuTTYgen
- Скачайте и запустите официальную утилиту PuTTYgen (входит в пакет PuTTY).
- Внизу выберите тип ключа: EdDSA (или Ed25519 / RSA 4096).
- Нажмите кнопку Generate и хаотично водите мышкой по экрану для создания криптографической энтропии.
- Нажмите кнопку Save private key и сохраните секретный файл
my_key.ppkна свой компьютер. - В верхнем текстовом поле «Public key for pasting into OpenSSH authorized_keys file» выделите и скопируйте весь текст, начинающийся на
ssh-ed25519 AAAA....
Шаг 3: Добавление публичного ключа на сервере Linux вручную
Подключитесь к серверу по паролю и вставьте скопированную строчку в файл авторизованных ключей:
mkdir -p ~/.ssh
nano ~/.ssh/authorized_keysВставьте ключ, сохраните файл (Ctrl + O -> Enter -> Ctrl + X) и обязательно выставьте строгие права доступа:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keysШаг 4: Настройка подключения в PuTTY
- Откройте PuTTY, введите IP-адрес сервера.
- В левом меню перейдите в Connection -> SSH -> Auth -> Credentials (или Auth).
- В поле Private key file for authentication выберите ваш сохраненный файл
my_key.ppk. - Вернитесь в раздел Session, сохраните сессию и нажмите Open — вход произойдет мгновенно без ввода пароля!
Типовые ошибки администраторов
- Копирование содержимого сохраненного файла Public Key из PuTTYgen: Кнопка «Save public key» в PuTTYgen сохраняет ключ в формате RFC 4716, который не понимает OpenSSH. В файл
authorized_keysна Linux нужно вставлять только одну длинную строку из верхнего окна PuTTYgen! - Слишком открытые права на папку .ssh: Если папка
~/.sshимеет права 777, SSH-демон из соображений безопасности заблокирует вход по ключу. Права должны быть строго700для папки и600для файлаauthorized_keys.
ITSTM настроит централизованное хранилище SSH-сертификатов (Vault SSH CA), ротацию ключей и доступ по временным одноразовым токенам.
Частые вопросы (FAQ)
Как конвертировать OpenSSH ключ (.pem) в формат PuTTY (.ppk)?
В PuTTYgen нажмите 'Conversions' -> 'Import key' -> выберите файл закрытого ключа OpenSSH -> затем нажмите 'Save private key'.
Можно ли использовать один и тот же приватный ключ на разных компьютерах?
Технически можно скопировать приватный ключ на другой ПК, но по стандартам безопасности рекомендуется генерировать персональную пару ключей для каждого физического рабочего места сотрудника.
Что делать, если PuTTY пишет 'Server refused our key'?
Проверьте права доступа на сервере: папка ~/.ssh должна иметь права 700, а файл authorized_keys — права 600, и их владельцем должен быть ваш текущий пользователь.
Где хранятся SSH-ключи в Windows 10/11 по умолчанию?
В домашней папке пользователя: C:\Users\ИмяПользователя\.ssh\.