Генерация SSH-ключей (ssh-keygen) и вход без пароля через ssh-copy-id
Почему вход по паролю — это прошлый век и угроза безопасности
Использование обычных текстовых паролей для входа на сервер по 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).
ITSTM внедрит корпоративные системы управления секретами (HashiCorp Vault, Teleport), настроит аутентификацию через LDAP/Active Directory и аудит сессий.
Частые вопросы (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 хостинга, вручную добавив новый публичный ключ.