Unifi Cloud Key Gen 1 SSH с аутентификацией по публичному ключу

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

Я пытаюсь настроить свой Cloud Key (CK) первого поколения для ввода пароля без аутентификации, чтобы запустить bash-скрипт для загрузки файлов автоматического резервного копирования. Я могу подключиться к CK по SSH “вручную”, а также с помощью моего bash-скрипта, используя имя пользователя и пароль, но это сохранит учетные данные в открытом виде, чего я (понятно) не хочу.

Я сделал следующее:

  • сгенерировал ключи на своем локальном компьютере (MBP Sequoia 15.1.1) с помощью ssh-keygen -t rsa,
  • скопировал открытый ключ в файл ~/.ssh/authorized_keys на CK,
  • изменил /etc/ssh/sshd_config, добавив следующие (раскомментированные) строки: RSAAuthentication yes, PubkeyAuthentication yes и AuthorizedKeysFile .ssh/authorized_keys,
  • перезапустил ssh на CK с помощью sudo systemctl restart sshd,
  • проверил права доступа с помощью chmod 700 ~/.ssh и chmod 600 ~/.ssh/authorized_keys.

Но все равно не удалось. Лог SSH говорит:

...
debug1: Следующий метод аутентификации: publickey
debug1: get_agent_identities: agent привязан к hostkey
debug1: get_agent_identities: ssh_fetch_identitylist: agent не содержит идентифицирований
debug1: Попытаюсь использовать ключ: /Users/Hank/.ssh/id_rsa RSA SHA256:KEY_VALUE_REDACTED
debug1: Попытаюсь использовать ключ: /Users/Hank/.ssh/id_ecdsa 
debug1: Попытаюсь использовать ключ: /Users/Hank/.ssh/id_ecdsa_sk 
debug1: Попытаюсь использовать ключ: /Users/Hank/.ssh/id_ed25519 
debug1: Попытаюсь использовать ключ: /Users/Hank/.ssh/id_ed25519_sk 
debug1: Попытаюсь использовать ключ: /Users/Hank/.ssh/id_xmss 
debug1: Попытаюсь использовать ключ: /Users/Hank/.ssh/id_dsa 
debug1: Предлагаю открытый ключ: /Users/Hank/.ssh/id_rsa RSA SHA256:KEY_VALUE_REDACTED
debug1: send_pubkey_test: нет совместимого алгоритма подписи
debug1: Попробую закрытый ключ: /Users/Hank/.ssh/id_ecdsa
debug1: Попробую закрытый ключ: /Users/Hank/.ssh/id_ecdsa_sk
debug1: Попробую закрытый ключ: /Users/Hank/.ssh/id_ed25519
debug1: Попробую закрытый ключ: /Users/Hank/.ssh/id_ed25519_sk
debug1: Попробую закрытый ключ: /Users/Hank/.ssh/id_xmss
debug1: Попробую закрытый ключ: /Users/Hank/.ssh/id_dsa
debug1: Следующий метод аутентификации: пароль
[email protected]: пароль 
...

и поэтому меня все еще просят ввести пароль. Я полагаю, что ключ к проблеме кроется в этой строке:

нет совместимого алгоритма подписи

Означает ли это, что экземпляры SSH на двух устройствах несовместимы, и, следовательно, использование аутентификации на основе ключей невозможно? Это кажется довольно простым, но что-то не так.

Кратко; Программное обеспечение контроллера Unifi поддерживает аутентификацию по SSH на основе ключей, но это применимо только к привязке к сетевым устройствам, таким как точки доступа, коммутаторы и роутеры. CK является клиентом, и, похоже, невозможно достигнуть моей цели через программное обеспечение контроллера.

Существует довольно много обсуждений по этому подходу, но ничто не кажется, чтобы решало эту конкретную проблему.

ИЗМЕНЕНИЕ: Я нашел это, что заставляет меня думать, что мой CK (который, надо признать, древний) может быть источником проблемы. Обновление ssh на CK, хоть теоретически возможно, является не оптимальным решением, потому что я бы ожидал, что будущие обновления прошивки перезапишут любые промежуточные изменения.

Ответ заключается в использовании чего-то, кроме RSA?

Ответ или решение

Настройка SSH аутентификации с использованием открытого ключа для Unifi Cloud Key Gen 1

Введение

Настройка SSH-доступа к Unifi Cloud Key (CK) Gen 1 с использованием аутентификации по открытому ключу может показаться задачей простого уровня, но она может вызвать некоторые сложности, особенно если ваша система устарела. В данном руководстве мы рассмотрим, как настроить SSH-доступ к вашему CK без необходимости использования пароля, а также обсудим возможные причины, по которым это может не работать, включая проблему с совместимостью алгоритмов подписи.

Шаги для настройки SSH с использованием открытых ключей

  1. Генерация ключей:
    Вы правильно использовали команду ssh-keygen -t rsa на вашем локальном компьютере (MBP Sequoia 15.1.1). Убедитесь, что вы сохранили пару ключей (обычно в каталоге ~/.ssh/).

  2. Копирование публичного ключа:
    Вы перенесли содержимое вашего файла публичного ключа (например, id_rsa.pub) в файл ~/.ssh/authorized_keys на вашем Cloud Key. Это правильный шаг, однако обязательно проверьте, что в этом файле нет лишних пробелов или строк.

  3. Настройка конфигурации SSH:
    Вы изменили файл /etc/ssh/sshd_config, убедившись, что строки RSAAuthentication yes, PubkeyAuthentication yes, и AuthorizedKeysFile .ssh/authorized_keys раскомментированы. Это отличный шаг.

  4. Перезапуск службы SSH:
    После изменения конфигурации вы правильно перезапустили службу SSH с помощью sudo systemctl restart sshd. Пожалуйста, убедитесь, что команда выполнена успешно и что ошибок не возникло.

  5. Проверка прав доступа:
    Команды chmod 700 ~/.ssh и chmod 600 ~/.ssh/authorized_keys правильно устанавливают необходимые права доступа для каталога и файла. Это критично для обеспечения безопасности и корректной работы SSH.

Анализ проблемы

Ваша проблема заключается в сообщении из журналы SSH: no mutual signature algorithm. Это указывает на то, что ваш клиент SSH (на MBP) и сервер SSH (на CK) не могут согласовать общую схему подписи для аутентификации.

  1. Совместимость SSH:
    Возможно, версия SSH сервера на вашем Cloud Key устарела и не поддерживает более новые алгоритмы RSA. Если ваш клиент SSH пытается использовать более современные алгоритмы, такие как SHA256, а сервер их не поддерживает, вы получите ошибку.

  2. Попробуйте использовать другой тип ключа:
    Если вы используете RSA, попробуйте сгенерировать ключи другого типа, например, Ed25519, который более безопасен и поддерживается современными клиентами и серверами SSH. Для этого используйте команду:

    ssh-keygen -t ed25519
  3. Проверка версии OpenSSH:
    Используйте команду ssh -V на вашем Cloud Key, чтобы проверить версию OpenSSH. Если на CK установлена старая версия, это может быть корнем проблемы. Обновление может быть затруднительным из-за возможных ограничений современных прошивок.

Заключение

Если после всех предложенных шагов SSH-аутентификация по открытому ключу всё еще не работает, изучите возможность обновления прошивки вашего Cloud Key в надежде, что это улучшит совместимость SSH. Если обновление невозможно, используйте другой тип ключа (например, Ed25519) или рассмотрите возможность использования промежуточной машины для выполнения автоматизации, где хранение паролей будет безопаснее, пока не удастся решить проблему с CK.

В случае дальнейших затруднений всегда полезно обратиться за поддержкой на специализированные форумы или в сообщества пользователей Unifi, где можно найти альтернативные решения и рекомендации.

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

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