Вопрос или проблема
Я пытаюсь настроить SSH с использованием аутентификации по открытым ключам на Debian. У меня не получается это сделать, так как auth.log постоянно говорит, что не может прочитать тип ключа:…(строка ключа)\n.
Он продолжает жаловаться на перенос строки, и я не могу его удалить. Я открываю файл, удаляю перенос строки, но он добавляется снова.
Спасибо заранее
Редактировать: Мне удалось удалить перенос строки, но теперь у меня ошибка, которая была у меня прошлой ночью. Я начал с ключа RSA 4096, но учитывая эту ошибку, я подумал, что ssh не принимает 4096-битные ключи (я знаю, это глупо, но мне пришлось попробовать). Вот ошибка из auth.log:
11 сен 08:36:18 fortknox sshd[5002]: ошибка: buffer_get_string_ret: неверная длина строки 813826338
11 сен 08:36:18 fortknox sshd[5002]: ошибка: key_from_blob: не удалось прочитать тип ключа
11 сен 08:36:18 fortknox sshd[5002]: ошибка: key_read: key_from_blob MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvGOorkMkY7OX6iQrTWm+JeFxysPm02PRTcOMQlIrAkYSkCody07Y5+e7IPFXoRIHgzecpZ/KeA13T6qa7x5pRu65xAyvsnkvW5YFxVkv/JNvS3EBKpOE22dkO2xC5Dv7id/Aw3QtnzdwZhllczmOoSRbtPfJK4oxLNcy6lAqiN1XQLWl/2I7GglTawJCAsXpqXdXsJGFqnQkMPWkVo3LTlcZVgzH+ChURJTRutNJCeEm8d+FzGfTICCoPveOhlytJTAXtsDLKGgEoK2XoGfUH3OGRsBq0WssINXvopfhrfhTaBxKZ7kr3WLQSHHy6A/xxlTwA81wNuiXNBdGUGSaVwIDAQAB [email protected] не удалось
Используйте оригинальный .pub файл, который был сгенерирован (или сгенерируйте новую пару ключей), а затем добавьте его в authorized_keys следующим образом:
cat id_rsa.pub >> .ssh/authorized_keys
Вы можете использовать ssh-copy-id для локального хоста:
ssh-copy-id -i identity_file localhost
Ответ или решение
При настройке SSH с использованием аутентификации по открытым ключам на сервере Debian могут возникнуть проблемы, связанные с форматом файлов и строками переноса. Если в логах аутентификации (auth.log) вы видите ошибки, такие как "can’t read key type" или "bad string length", это может указывать на неправильный формат ключа, а также на возможные проблемы со строками переноса, которые автоматически добавляются в файл.
1. Проблема с форматом ключа
Первоначальное сообщение об ошибке "can’t read key type" часто указывает на то, что открытый ключ в файле ~/.ssh/authorized_keys
имеет неправильный формат. Стандартный формат ключа включает в себя тип ключа, сам ключ и, возможно, комментарий, например:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArE3... user@hostname
Если ключ поврежден, например, из-за некорректного копирования или добавления лишних символов, сервер SSH не сможет его распознать.
2. Устранение новой строки
Проблема с автоматическим добавлением новой строки может быть связана с редактором текста, который вы используете для редактирования файла ~/.ssh/authorized_keys
. Некоторые текстовые редакторы могут добавить новую строку в конце файла, даже если вы этого не намеревались. Чтобы устранить эту проблему:
- Используйте текстовые редакторы, которые позволяют контролировать форматирование, такие как
vim
,nano
илиgedit
. - Убедитесь, что файл имеет правильный формат UTF-8 и не содержит никаких дополнительных пробелов или символов переноса строки в конце строки ключа.
Чтобы удалить лишние символы, выполните следующие шаги в редакторе nano
, например:
- Откройте файл:
nano ~/.ssh/authorized_keys
- Убедитесь, что каждая строка содержит только один ключ, и в конце нет лишних переносов.
- Сохраните изменения и выйдите, нажав
CTRL + X
, затемY
иEnter
.
3. Генерация нового ключа
Если вы подозреваете, что текущий ключ поврежден или неправильно сгенерирован, рекомендуется создать новый ключ:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Затем добавьте его в файл authorized_keys
, используя команду:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
4. Использование ssh-copy-id
Для упрощения процесса добавления ключа в файл authorized_keys
можно использовать команду ssh-copy-id
. Для этого выполните:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@localhost
5. Проверка прав доступа
Также стоит убедиться, что права доступа к директории .ssh
и файлу authorized_keys
установлены корректно:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Заключение
После выполнения всех вышеуказанных шагов попробуйте подключиться к вашему серверу SSH снова. Если ошибка сохраняется, внимательно проверьте логи (/var/log/auth.log
) для получения дополнительной информации о характере проблемы.
Надеюсь, эти рекомендации помогут вам устранить возникшие проблемы с аутентификацией SSH на Debian.