Как настроить аутентификацию SSH по ключам с PuTTY и Linux-сервером за 5 шагов

К чему это и кого касается
Коротко: аутентификация по ключам безопаснее паролей — владелец приватного ключа может подключиться, остальные — нет. Это руководство ориентировано на пользователя Windows, использующего PuTTY, и администратора Linux-сервера.
1. Скачать zip с бинарниками PuTTY
Скачайте архив с последними сборками PuTTY:
http://the.earth.li/~sgtatham/putty/latest/x86/putty.zip
Сохраните и распакуйте. В архиве находятся PuTTY.exe, PuTTYgen.exe, Pageant.exe и другие утилиты.
2. Сгенерировать пару ключей
Запустите PuTTYgen.exe, нажмите кнопку “Generate” и двигайте мышь, пока генерация не завершится. Введите запоминаемую, но надёжную фразу-пароль (passphrase).
Сохраните публичный ключ и приватный ключ (кнопки “Save public key” и “Save private key”).
Примечание: PuTTYgen может выдавать публичный ключ в формате, пригодном для OpenSSH. Для некоторых старых систем может потребоваться преобразование формата, но чаще всё работает сразу.
3. Настроить Linux-сервер (создать пользователя, сохранить публичный ключ)
В примере используем имя пользователя autotimesheet — замените его на ваше обычное.
Как root выполните:
adduser autotimesheet --disabled-password
Заполните дополнительные поля по желанию (пустая строка допустима).
Далее переключитесь на пользователя и создайте папку для ключей:
su autotimesheet
cd /home/autotimesheet
mkdir .ssh
chmod 700 .ssh
cd .ssh
Создайте файл authorized_keys2 (в старых системах использовался именно этот файл). Вставьте туда ваш публичный ключ ОДНОЙ СТРОКОЙ. Это важно.
Правила оформления строки ключа:
- Не добавляйте в конец [email protected]
- Не включайте строки BEGIN PUBLIC KEY / END PUBLIC KEY
- Не добавляйте дополнительные теги вроде rsa-key-20090614
- Строка должна начинаться с ssh-rsa (или ssh-ed25519 / ecdsa-sha2-nistp256 в зависимости от типа ключа)
Пример строки:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIBzPeFQv+295iKzuuPH0jA9449pSHVpCwXvCR9EstmYh...
Примените права:
chmod 600 authorized_keys2
Важно: современный стандарт использует файл ~/.ssh/authorized_keys. Если у вас современные дистрибутивы, положите ключ и туда. См. раздел “Совместимость и миграция” ниже.
Важно: права каталогов и файлов критичны: домашняя директория, ~/.ssh и файл авторизации должны иметь корректные права, иначе sshd отвергнет ключи.
4. Добавить приватный ключ в агент аутентификации PuTTY (Pageant)
Запустите Pageant.exe. В трее появится иконка агента. Кликните правой кнопкой по иконке и выберите “Add Key” (Добавить ключ).
Выберите файл приватного ключа, который вы сохранили в PuTTYgen, и введите фразу-пароль при необходимости. Pageant хранит приватный ключ в памяти и подставляет его при подключении.
Pageant работает как хранитель passphrase и упрощает повторные подключения.
5. Подключиться к серверу из PuTTY
Откройте PuTTY и подключитесь как autotimesheet@yourserver (имя сервера или IP).
Если всё настроено верно, вы увидите вход без запроса пароля:
Отладка и распространённые ошибки
Если вход не происходит, проверьте последовательно:
- Пользователь и имя хоста указаны правильно. Ошибка сервера при попытке входа как root может мешать.
- Права доступа: домашняя директория, .ssh (700) и authorized_keys2 (600). Используйте ls -ld и ls -l.
- Формат ключа: ключ должен быть в одной строке и начинаться с префикса типа ssh-rsa.
- Агент Pageant запущен и содержит ключ. Проверьте иконку в трее.
- Логи sshd: на сервере выполните sudo tail -f /var/log/auth.log или journalctl -u sshd, чтобы увидеть причину отказа.
- Параметры sshd: проверьте /etc/ssh/sshd_config — должны быть разрешены PubkeyAuthentication yes и (если хочете) PasswordAuthentication no.
- SELinux/ACL: если включены, убедитесь, что контекст и права соответствуют требованиям.
Полезная команда для подробного подключения с клиента:
ssh -vvv autotimesheet@yourserver
Она покажет, какой ключ клиент предлагает и что сервер отвечает.
Альтернативные подходы
- OpenSSH на Windows: начиная с Windows 10 можно использовать встроенный OpenSSH-клиент (ssh, ssh-agent). Это избавляет от необходимости PuTTY/Pageant.
- WSL: используйте WSL и его OpenSSH-инструменты для единого набора команд между Windows и Linux.
- WinSCP или FileZilla: для передачи файлов можно настроить аутентификацию по ключам и в GUI-клиентах.
Безопасность и жёсткая настройка sshd
Рекомендуемые изменения в /etc/ssh/sshd_config для повышения безопасности:
PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no
PermitRootLogin no
AllowUsers autotimesheet otheruser
После изменений перезапустите сервис:
sudo systemctl restart sshd
Примечание: отключать пароли следует только после проверки, что вы можете зайти по ключу, иначе вы рискуете потерять доступ.
Совместимость и миграция
- Файл authorized_keys2 исторически использовался на старых системах. Современные системы читают ~/.ssh/authorized_keys. Если не уверены, положите ключ в оба файла или проверьте sshd_config на наличие AuthorizedKeysFile.
- Если необходимо, конвертируйте формат ключа PuTTY (формат .ppk) в OpenSSH через PuTTYgen (Load, Conversions -> Export OpenSSH key).
Шпаргалка — команды и проверка
- Создать пользователя: adduser user –disabled-password
- Права SSH: chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
- Просмотреть логи: sudo tail -n 200 /var/log/auth.log или sudo journalctl -u sshd
- Перезапустить sshd: sudo systemctl restart sshd
- Подключиться с отладкой: ssh -vvv user@host
Роли и чек-листы
Администратор:
- Создать пользователя и домашнюю директорию.
- Настроить права (700 для .ssh, 600 для ключа).
- Проверить sshd_config и логи.
- По возможности ограничить вход по паролю после проверки.
Пользователь:
- Сгенерировать пару ключей в PuTTYgen.
- Отправить публичный ключ администратору или положить его в ~/.ssh/authorized_keys2.
- Добавить приватный ключ в Pageant.
- Подключиться и проверить работу.
Краткая методология проверки
- Сгенерировали ключи на клиенте. 2. Поместили публичный ключ на сервер в одну строку. 3. Установили корректные права. 4. Добавили приватный ключ в агент. 5. Подключились и проверили логи.
Мини-фактбокс
- Форматы ключей: rsa, ed25519, ecdsa.
- Рекомендуемые размеры RSA: минимум 2048 бит, предпочтительно 3072–4096 бит.
- Ключи ed25519 обеспечивают хорошее соотношение безопасности и скорости.
Краткий глоссарий
- Приватный ключ: секретный файл, хранить локально и безопасно.
- Публичный ключ: то, что размещают на сервере.
- Pageant: агент PuTTY для хранения приватных ключей в памяти.
- sshd: демон SSH на сервере, проверяет ключи и пароли.
Когда этот подход не подходит
- Если устройство теряется и приватные ключи не защищены фразой-паролем.
- Если требуется централизованное управление доступом — в больших средах удобнее использовать LDAP/AD/токены или управление ключами.
Резюме
- Аутентификация по ключам повышает безопасность и удобство.
- Проверьте права, формат ключа и настройки sshd перед отключением паролей.
- Используйте Pageant для удобства на Windows или OpenSSH/ssh-agent в других средах.
Критерии приёмки
- У пользователя есть доступ по ключу без запроса пароля.
- Файл authorized_keys2/authorized_keys содержит корректную однострочную запись ключа.
- Права доступа установлены: 700 для .ssh и 600 для файла ключей.
- Сервис sshd перезапущен после изменений и лог показывает успешную аутентификацию.
Похожие материалы

Не создаётся папка в Windows 10 — как исправить

Просмотр истории обновлений Windows 10

Установка Openfire на CentOS 5.6

Войти в Windows Live Mail и управлять почтой

Ошибка WRP: как исправить sfc /scannow
