Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    info@proxmox.su
    +7 (495) 320-70-49
    Заказать звонок
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Телефоны
    +7 (495) 320-70-49
    Заказать звонок
    0
    0
    0
    Аспро: ЛайтШоп
    • +7 (495) 320-70-49
      • Назад
      • Телефоны
      • +7 (495) 320-70-49
      • Заказать звонок
    • info@proxmox.su
    • Москва, Бакунинская улица, 69с1
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Proxmox Виртуальная Среда
    "sshkeys":"неверный формат – недействительная закодированная строка URL"

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    "sshkeys":"неверный формат – недействительная закодированная строка URL", Proxmox Виртуальная Среда
     
    LexyJexon
    Guest
    #1
    0
    21.04.2023 14:43:00
    Привет всем! Пытаюсь настроить cloud-init конфигурации шаблона через метод proxmox.Client.SetVmConfig() пакета proxmox-api-go. Нужно настроить логин, пароль, ssh-ключ и сетевые настройки. Создал переменную `map[string]interface{}` с содержимым:

    ```
    {
    "ipconfig0":  NewNet0Cfg,
    "ciuser":     username,
    "cipassword": password,
    "sshkeys":    encodedKey,
    }
    ```

    Все значения этих ключей имеют тип string. Проблема только с ssh-ключом. Сначала создал переменную `SshKey := "ssh-rsa AAAAB3..."`. Затем попытался закодировать её через URL с помощью пакета `net/url`: `encodedKey := url.QueryEscape(SshKey)`. Но при вызове метода `SetVmConfig()` получаю такой ответ:

    ```
    RESULT: HTTP/1.1 400 Parameter verification failed.
    Connection: close
    Content-Length: 698
    Cache-Control: max-age=0
    Content-Type: application/json;charset=UTF-8
    Date: Fri, 21 Apr 2023 11:57:08 GMT
    Expires: Fri, 21 Apr 2023 11:57:08 GMT
    Pragma: no-cache
    Server: pve-api-daemon/3.0
    {"errors":{"sshkeys":"invalid format - invalid urlencoded string: ssh-rsa+AAAAB3NzaC1yc2EAAAADAQABAAABgQD02Ls76J6njonSYyWAovbUYJnL­rNzt%2F6fiXZp1Pbae0egMTb8UgdOrecharIy6EKLmjCGfyZs8Klhg%2BEaD­A9O8iTRn%2BHpRUrJhmFdxwaraQ2xEvL6slburbu9vB3vgJxT0oFAHW4osob­LPXrZ%2BYZHRZjK9zi%2BW%2FxnLJZFOokWAWKCbYa52%2B7i%2Fk5a605Lk­ZnbO5So3urTurvmdAD7mgBDyngQ2dCUajoAE8RW4aUfkfJoTd9aS6x663%2F­19jtR3iyOMsaAxIw4QbRLK3%2FEZBA88cySYglx8xzy4tSXwag1KxXHrWNqi­E%2BYSRuhHybfeL22ZXwDmx3zWMLgfZDu3bcOX%2FifVOpCqTMPECT03lIX1­HBF%2FSTJQN0IVKPyFFOzLmAfge%2BaP3DopjEL2JHAsA9BSKETO76IeAZNt­cKt%2FAFs5KugqMxCLIWQ0Q4uyFp8bJ2f8DOLDV8VvOeHM9aaVOhbXZ%2Fe%­2FM%2BmsmV8cl1CWex3kWG7CZLq77FDR1d7qbhfYVH8%3D+kochevoy%40ko­chevoy-gen2
    "},"data":null}
    ```

    Можете помочь решить эту проблему, пожалуйста?
     
     
     
    phaedrus
    Guest
    #2
    0
    06.06.2023 23:30:00
    Я тоже сталкивался с этой проблемой, когда использовал функцию `url.QueryEscape()` в Go для кодирования SSH-ключа. В чем суть: пробелы кодируются как "+", поэтому чтобы обойти это, можно сделать что-то вроде этого:

    ```go
    strings.Replace(url.QueryEscape(sshKey), "+", "%20", 1)
    ```
     
     
     
    iamralf
    Guest
    #3
    0
    06.05.2024 15:30:00
    Я получаю практически ту же ошибку, когда отправляю sshkey через URI в Ansible. После {{ | urlencode }}. в переменной нет \n или "+". Но в сообщении об ошибке, как в приведенном выше выводе ошибки, к строке добавляется \n. Как вообще можно исправить эту ошибку? Спасибо за любую помощь! Задача Ansible: - name: configure vm uri: url: "https://{{ server_url }}:8006/api2/json/nodes/{{ node }}/qemu/{{ vmid_next | trim }}/config" method: POST return_content: yes body_format: json use_proxy: no validate_certs: no timeout: 5 headers: Authorization: "PVEAPIToken=..." Content-Type: "application/json" body: vmid: "{{ vmid_next | trim }}" [...] ciuser: "{{ inventory_settings__pve_vm_username }}" sshkeys: "{{ inventory_settings__pve_vm_public_key | trim | urlencode }}" [...]
     
     
     
    iamralf
    Guest
    #4
    0
    08.05.2024 11:11:00
    Стефан, можешь проверить мою проблему (та же проблема с "\n") в строке выше (в понедельник)? Спасибо!
     
     
     
    jholderman
    Guest
    #5
    0
    04.11.2024 03:43:00
    Знаю, что прошло довольно много времени с момента публикации этого сообщения, но я хотел помочь тем, кто, как и я, ломал голову над этой проблемой слишком долго. Это сработало для меня пока что. Не нравится мне это и вообще не согласен с этим, но факт остается фактом: `vm_sshkeys` – это переменная, содержащая мой публичный SSH-ключ в строковом формате. Я запускаю этот шаг перед вызовом URI и использую `encoded_sshkeys_output` для заполнения свойства `sshkeys`.

    YAML:
    - name: Encode SSH Keys for Proxmox
     ansible.builtin.shell: |
       python3 -c "import urllib.parse, sys; print(urllib.parse.quote(sys.argv[1], safe=''))" "{{ vm_sshkeys }}"
     register: encoded_sshkeys_output
     changed_when: false

    Кстати, я только что зарегистрировался на этом форуме, чтобы ответить на это сообщение, чтобы помочь всем, кто в будущем столкнется с такой же проблемой.
     
     
     
    cr4ckDe
    Guest
    #6
    0
    19.12.2024 15:46:00
    Спасибо, очень помогло. Для тех, кто всё ещё мучается: нужно обращаться к .stdout из вывода. sshkeys: "{{ encoded_sshkeys_output.stdout }}"
     
     
     
    parc-network
    Guest
    #7
    0
    04.02.2025 15:12:00
    VIP
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

    Конфиденциальность Оферта
    © 2026 Proxmox.su
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры