Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Linux / DevOps

Генерация SSH-ключей (ssh-keygen) и вход без пароля через ssh-copy-id

Обновлено: 26.08.2026 · Официальная документация ↗

Почему вход по паролю — это прошлый век и угроза безопасности

Использование обычных текстовых паролей для входа на сервер по SSH имеет критические недостатки: пароль можно перехватить кейлоггером, подобрать перебором (Brute-force) или случайно скомпрометировать. Вход по криптографической паре SSH-ключей (Асимметричное шифрование) полностью устраняет эти риски. Сервер проверяет цифровую подпись вашего ключа за доли секунды без передачи секретного пароля по сети.

Как устроена пара ключей

КлючИмя файла (пример)Где хранитсяБезопасность
Приватный (Закрытый)id_ed25519ТОЛЬКО на вашем ПК. Никому нельзя передавать!Секретный ключ (как физический ключ от квартиры).
Публичный (Открытый)id_ed25519.pubКопируется на удаленные серверы Linux.Замочная скважина, в которую входит ваш ключ.

Пошаговая настройка входа по ключам за 2 минуты

Шаг 1: Генерация пары ключей на вашем компьютере

Откройте терминал (на вашем рабочем ПК Linux/MacOS или PowerShell в Windows 10/11) и выполните генерацию современного надежного ключа Ed25519:

ssh-keygen -t ed25519 -C "my-work-laptop"
  • На вопрос «Enter file in which to save the key» просто нажмите Enter (сохранить по умолчанию).
  • На вопрос «Enter passphrase» можно задать пароль-фразу для защиты самого ключа (или нажать Enter для входа без ввода паролей).

Шаг 2: Передача публичного ключа на удаленный сервер (ssh-copy-id)

Выполните автоматическую установку вашего открытого ключа на целевой сервер:

ssh-copy-id -p 22 ubuntu@192.168.1.150

Система в последний раз запросит пароль пользователя от сервера. Утилита сама подключится, создаст папку ~/.ssh, выставит правильные права безопасности и пропишет ключ в файл ~/.ssh/authorized_keys.

Шаг 3: Проверка мгновенного входа без пароля

Подключитесь к серверу:

ssh ubuntu@192.168.1.150

Вы мгновенно окажетесь в консоли сервера без запроса пароля учетной записи!

Шаг 4: Отключение входа по паролям на сервере (Харденинг)

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

PasswordAuthentication no
PubkeyAuthentication yes

Перезапустите SSH: sudo systemctl restart ssh. Теперь никто в мире не сможет войти на ваш сервер подбором паролей!

Типовые ошибки администраторов

  • Копирование приватного ключа вместо публичного: На сервер передается ТОЛЬКО файл с расширением .pub. Если вы скопируете приватный ключ на сервер, безопасность всей вашей инфраструктуры будет скомпрометирована.
  • Неправильные права доступа на сервере: SSH строго блокирует авторизацию по ключам, если права на файлы слишком открыты. Папка должна иметь права 700 (chmod 700 ~/.ssh), а файл authorized_keys — права 600 (chmod 600 ~/.ssh/authorized_keys).
Хотите настроить централизованное управление SSH-доступами для команды разработчиков?
ITSTM внедрит корпоративные системы управления секретами (HashiCorp Vault, Teleport), настроит аутентификацию через LDAP/Active Directory и аудит сессий.
💡 Практика специалистов: Всегда защищайте закрытый SSH-ключ надежной парольной фразой (Passphrase) и используйте системный агент 'ssh-agent' (команда 'ssh-add'), чтобы ввести пароль от ключа один раз при включении рабочего компьютера и больше не отвлекаться на запросы в течение рабочего дня.

Частые вопросы (FAQ)

Что делать, если в Windows PowerShell нет команды ssh-copy-id?

В Windows выполните передачу ключа одной командой: type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh user@server_ip 'cat >> ~/.ssh/authorized_keys'.

Какой алгоритм ключей лучше: RSA 4096 или Ed25519?

Ed25519 является современным золотым стандартом криптографии: он значительно короче, быстрее генерирует цифровую подпись и математически более устойчив к взлому, чем устаревающий RSA.

Можно ли использовать один и тот же ключ для входа на 50 разных серверов?

Да. Вы генерируете одну пару ключей на своем рабочем ПК и копируете свой публичный ключ .pub на все 50 серверов компании.

Что произойдет, если я потеряю свой файл закрытого ключа (id_ed25519)?

Если вход по паролю отключен, вы не сможете войти на сервер по SSH. Восстановить доступ можно будет только через физическую консоль или панель VNC/KVM хостинга, вручную добавив новый публичный ключ.

Полезные материалы
Рекомендуем