Невозможно получить аутентификацию с открытым / закрытым ключом, работающую для Azure Spring Cloud Config Server
У меня возникают трудности с настройкой моего сервера конфигурации в Azure Spring Cloud с использованием репозитория Github в качестве бэкэнда. У меня он работает с использованием базовой аутентификации, когда я создаю токен в Github, который подходит для моих экспериментов, но не подходит для производства.
Я установил свой открытый ключ в Github и проверил правильность моей настройки, используя следующую команду, по сути клонировав репо с использованием определенного закрытого ключа:
GIT_SSH_COMMAND='ssh -i ../azure_id_rsa -o IdentitiesOnly=yes' git clone git@github.my-account/azure-config-server.git
Локально это работает нормально, так что это, кажется, подтверждает, что моя настройка в Github верна и, используя закрытый ключ, я смогу клонировать репо в Azure, как вы думаете.
Однако, если я затем буду следовать инструкциям, описанным здесь в официальной документации Azure, чтобы настроить мой сервер конфигурации с помощью графического интерфейса, я получаю следующую ошибку:
Failed to update Config Server.
Reason: Fail to update config server due to 'Health check timeout with 10 minutes'.
Поэтому я попробовал использовать опцию "Импорт настроек", загрузив файл yaml. Я использовал этот шаблон Azure, в который затем вставляю свой закрытый ключ, используя раздел "закрытый ключ" (и да, корпус для Azure должен быть таким, согласно документации Azure, они поддерживают свойства только с использованием дефисов, а не верблюда. корпус), как описано здесь в документации Spring
Но я постоянно получаю одну и ту же ошибку, поэтому я думаю, что что-то не так с моей настройкой, но мои варианты исчерпаны. Если у кого-то есть указатели, это было бы очень полезно.
1 ответ
Хорошо, я понял это, просто отправив здесь свой ответ, если он кому-то поможет. Я только что заметил одно различие между моим закрытым ключом и тем, что упоминалось в примере Spring. Мой закрытый ключ начинается с "-----BEGIN OPENSSH PRIVATE KEY-----", тогда как в документации Spring он начинается с "-----BEGIN RSA PRIVATE KEY-----". Другими словами, он ожидает, что он будет в формате pem, а не в формате OpenSSH.
Итак, теперь я заставил его работать, сгенерировав свой ключ следующим образом (где заслуживающий внимания флаг - "-m pem"):
ssh-keygen -t rsa -m pem -b 4096 -C "my@email.com"
А затем, когда я настроил свой открытый ключ в Github и вставил свой закрытый ключ в Azure Config Server, это действительно сработало.
Надеюсь, это поможет кому-то сэкономить время, так как мне пришлось немало разобраться.