Руководство по настройке входа на Linux-сервер по SSH-ключу, закреплению IP-адреса через DHCP домашнего роутера.
Быстрый старт:
type %USERPROFILE%\.ssh\id_ed25519.pub | ssh USER@SERVER_IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
ssh USER@SERVER_IP
Где главное заменить USER — на имя пользователя и SERVER_IP — на имя сервера к которому подключаетесь где-нибудь в блокноте.
Подробная инструкция:
- Проверка что есть открытый и закрытый ключ на windows, выполняем комманду и видим id_ed25519 (закрытый, никому не копируем) и id_ed25519.pub (открытый, всегда копируем его)
dir %USERPROFILE%\.ssh
Содержимое папки C:\Users\Valera\.ssh
17.10.2026 23:16 <DIR> .
13.10.2026 05:50 <DIR> ..
17.10.2026 23:18 370 config
17.11.2023 03:39 411 id_ed25519
17.11.2023 03:39 103 id_ed25519.pub
06.04.2024 21:59 3 389 id_rsa
06.04.2024 21:59 749 id_rsa.pub
25.09.2026 01:09 7 205 known_hosts
2. Далее развилка, закрытого и открытого ключа нет (см. выше), выполнить комманду ниже для его генерации и отвечать на вопросы, в основном везде enter, пароль нинада ставить.
ssh-keygen -t ed25519
3. Далее выясняем MAC адрес машины у своего роутера, у меня TP-LINK
Админка роутера — DHCP — Список клиентов DHCP

Копируем нужный MAC и идем в пункт Админка роутера — DHCP — Резервирование адресов — Добавить — вставляем нужный нам MAC адрес и IP адрес подальше от автоматически генеренных.

После нажатия на Сохранить, перезапуск роутера обязателен. Перезапуск сервера не обязателен.
4. Создать SSH-алиас
Открыть файл с SSH-алиасами (потом это очень удобно)
notepad %USERPROFILE%\.ssh\config
И добавить новый алиас, выделенное жирным заменить на свое
Host linux-server
HostName 192.168.0.200
User USER
IdentityFile ~/.ssh/id_ed25519
Затем подключатся очень просто, особенно актуально для всяких cursor, zcode, и любых harness систем.
ssh linux-server
Основные ошибки при настройке
1. REMOTE HOST IDENTIFICATION HAS CHANGED!
SSH обнаружил, что ключ устройства по указанному IP изменился. Это может произойти после переустановки Linux или если роутер выдал тот же IP другому устройству.
Сначала убедитесь, что подключаетесь к нужному серверу потому что скорее всего настраивали для другого сервера, и сотрете подключение. Если изменение ожидаемое, удалите старую запись для конкретного IP:
ssh-keygen -R 192.168.0.101
После этого подключитесь повторно и подтвердите новый ключ, только если уверены, что это нужный сервер.
2. IP-адрес сервера постоянно меняется
Если роутер автоматически раздаёт IP-адреса, один и тот же адрес со временем может достаться разным устройствам. SSH запоминает ключи серверов, поэтому при повторном использовании адреса другим устройством появляется предупреждение о несовпадении ключей.
Решение — настроить резервирование DHCP в роутере: закрепить IP-адрес за MAC-адресом сетевой карты сервера. После обновления DHCP-аренды сервер будет получать зарезервированный адрес, и подключаться к нему станет проще.
3. vdollar_percent_expand: unknown key %U
Эта ошибка возникает, если команда Windows с переменной %USERPROFILE% выполняется внутри Linux. Windows CMD и Linux используют разные обозначения переменных среды.
Выполните exit, чтобы вернуться в Windows, и запускайте команду в CMD. Приглашение C:\Users\...> означает, что вы находитесь в Windows, а user@server:~$ — в Linux.
4. Permission denied (publickey,password)
SSH не смог выполнить вход с доступными способами аутентификации. Возможные причины: публичный ключ не добавлен на сервер, используется не тот приватный ключ или подключение выполняется под другим пользователем.
Проверьте, что публичный ключ находится в ~/.ssh/authorized_keys нужного пользователя Linux, а права доступа установлены корректно: 700 для каталога .ssh и 600 для файла authorized_keys. Приватный ключ храните только на клиентском компьютере.
Итог
Для обычной домашней локальной сети достаточно выполнить четыре действия:
- Создать SSH-ключ на Windows или использовать существующий.
- Закрепить IP сервера через DHCP-резервирование роутера.
- Добавить публичный ключ в
~/.ssh/authorized_keysна Linux. - Подключаться командой
ssh USER@SERVER_IPили через алиас из SSH-конфига.
Такой подход сохраняет стандартную проверку SSH host key, не требует включения ARP Binding и значительно упрощает дальнейшее администрирование сервера из под Windows putty, ssh, etc.
Добавить комментарий