SSH authorized_keys и новая строка

Вопрос или проблема

Я пытаюсь настроить 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, например:

  1. Откройте файл:
    nano ~/.ssh/authorized_keys
  2. Убедитесь, что каждая строка содержит только один ключ, и в конце нет лишних переносов.
  3. Сохраните изменения и выйдите, нажав 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.

Оцените материал
Добавить комментарий

Капча загружается...