Инструменты пользователя

Инструменты сайта


sshd_key

Это старая версия документа!


Генерация SSH-ключа на Windows

Шаг 1. Генерация SSH-ключа на Windows
ssh-keygen -t ed25519 -C "my-windows-pc"
Нажимайте Enter на следующие запросы:

Enter file in which to save the key: нажмите Enter, 
чтобы сохранить в стандартную папку (C:\Users\ВашеИмя\.ssh\id_ed25519).

Enter passphrase: можете ввести кодовую фразу для дополнительной защиты самого файла ключа на ПК 
или нажать Enter дважды, чтобы оставить без пароля (тогда вход будет полностью автоматическим).

В папке .ssh появятся два файла:

id_ed25519 — ваш приватный ключ (никому его не передавайте).
id_ed25519.pub — ваш публичный ключ (его нужно загрузить на сервер)

Шаг 2. Перенос публичного ключа на VPS

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh user@IP_сервера "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
(Введите пароль от сервера в последний раз. Если вы уже меняли порт SSH, 
добавьте флаг порта после ssh, например: ssh -p 48222 user@IP_сервера ...).

Проверка: Попробуйте зайти на сервер новой командой ssh user@IP_сервера. 
Сервер должен пустить вас сразу, без запроса пароля ОС.

Шаг 3. Настройка лимитов (LoginGraceTime, MaxAuthTries, MaxStartups) на сервере
Подключитесь к серверу и откройте конфигурационный файл SSH-сервера:
sudo nano /etc/ssh/sshd_config

Найдите соответствующие директивы (если перед ними стоит символ #, удалите его) 
или добавьте ваш блок в конец файла:

# Сколько секунд сервер ждет авторизации до принудительного разрыва (по умолчанию 120)
LoginGraceTime 20

# Максимум попыток предложить ключ за одно соединение (по умолчанию 6)
MaxAuthTries 3

# Защита от забивания канала пустыми подключениями (начать сбрасывать при 3 неавторизованных сессиях)
MaxStartups 3:50:10

# Полное отключение входа по паролю (вход только по ключам)
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes

Важный нюанс про MaxAuthTries 3 на Windows: 
Если со временем на вашем ПК в папке .ssh накопится больше 3 разных SSH-ключей, 
SSH-клиент будет предлагать их серверу по очереди, и на 4-м ключе сервер разорвет соединение. 
Поскольку у вас сейчас один ключ id_ed25519, лимит 3 будет работать идеально.

Шаг 4. Безопасная проверка и перезапуск
Проверьте синтаксис конфига перед перезапуском (если в файле опечатка, 
команда укажет на строку с ошибкой; если всё чисто — ничего не выведет):

sudo sshd -t

Перезапустите службу SSH:
sudo systemctl restart ssh

Проверьте вход: Не закрывая текущее окно PowerShell, откройте второе окно PowerShell и подключитесь к серверу, чтобы убедиться, что новые правила работают корректно.
1. Скопируйте публичный ключ из Xshell.
Откройте «Инструменты → Менеджер ключей пользователя», выберите id_ed25519, 
нажмите «Свойства» и перейдите на вкладку «Открытый ключ». 
Скопируйте строку ssh-ed25519 AAAA...

mkdir -p /root/.ssh
echo 'ssh-ed25519 AAAA...ваш_ключ...' >> /root/.ssh/authorized_keys
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
chown -R root:root /root/.ssh

4. Проверьте настройки sshd:
sshd -T | grep -Ei 'permitrootlogin|pubkeyauthentication|authorizedkeysfile'
Должно быть pubkeyauthentication yes, а permitrootlogin равно yes 
или without-password/prohibit-password. Значение no означает, 
что вход под root запрещён. 
Если что-то меняли, перезапустите службу: systemctl restart ssh

проверка отпечатков:
ssh-keygen -lf /root/.ssh/authorized_keys
sshd_key.1793195379.txt.gz · Последнее изменение: — bonterkoz

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution 4.0 International
CC Attribution 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki