рукопожатие не удалось: ssh: не удалось аутентифицировать, пробовали методы [без интерактивной клавиатуры с паролем], не осталось поддерживаемых методов

Проблема в этом вопросе напоминает сбой SSH при сборке RancherOS с Упаковщик

Однако поведение моего Packer отличается. я получил

==> virtualbox-iso: Error waiting for SSH: ssh: handshake failed: ssh:
unable to authenticate, attempted methods [none password keyboard-
interactive], no supported methods remain

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

packer.json

{
 "variables": {
  "ros_version" : "v1.1.4",
  "iso_md5" : "b1f395a86c7c040702ec77fe87abb2e2",
  "vm_name" : "rancher_image"
  },
  "builders": [
  {
      "type": "virtualbox-iso",
      "iso_url": "https://releases.rancher.com/os/{{ user `ros_version` }}/rancheros.iso",
      "guest_os_type": "Linux_64",
      "guest_additions_mode": "disable",
      "iso_checksum_type": "md5",
      "iso_checksum": "{{ user `iso_md5` }}",
      "output_directory": "output_rancheros",
      "ssh_wait_timeout": "120s",
      "shutdown_command": "sudo shutdown -h now",
      "disk_size": 8000,
      "ssh_username": "rancher",
      "ssh_password": "rancher",
      "headless" : false,
      "ssh_port": 22,
      "ssh_host_port_min": 2222,
      "ssh_host_port_max": 4444,
      "ssh_skip_nat_mapping": true,
      "vm_name": "{{ user `vm_name` }}",
      "boot_wait": "30s",
      "vboxmanage":[
        ["modifyvm", "{{.Name}}", "--memory","4096"]
      ]
  }
],
"provisioners": [
  {
      "type":"file",
      "source": "cloud-config.yml",
      "destination": "/tmp/cloud-config.yml"
  },
  {
      "type": "shell",
      "inline": [
          "ifconfig",
          "sudo ros install -d /dev/sda -f -c /tmp/cloud-config.yml -i rancher/os:{{ user `ros_version` }} --no-reboot"
      ]
   }
 ]
}

cloud-config.yml

#cloud-config
rancher:
  ssh_authorized_keys:
    - ssh-rsa AAA ... some VALID RSA [email protected]
  network:
  interfaces:
    eth0:
      dhcp: true
    dns:
      nameservers:
        -8.8.8.8
        -8.8.4.4

Редактировать: добавлены эти строки в билдер и удалены их эквиваленты из провайдеров. Это по-прежнему не решает другие шаги, которые я хочу иметь, но, по крайней мере, облачная конфигурация загружена, и можно выполнить настройку.

      "http_directory":"http",
      "boot_command":[
          "<esc><esc><enter><wait>",
          "wget http://{{ .HTTPIP }}:{{ .HTTPPort }}/cloud-config.yml <enter>",
          "sudo ros install -d /dev/sda -f -c cloud-config.yml -i rancher/os:{{ user `ros_version` }}",
          "<enter>"],

person Roman Mik    schedule 06.03.2018    source источник


Ответы (2)


По умолчанию в RancherOS пароль ssh не включен. См. ошибку № 1467.

person Rickard von Essen    schedule 06.03.2018
comment
Спасибо, Мне непонятно, как установить пароль до того, как ssh произойдет через упаковщик. cloud-config или provisioners не выполняются до тех пор, пока они не будут выполнены. - person Roman Mik; 06.03.2018
comment
Просто поместите файл cloud-config.yml в свой http-каталог и используйте команду boot_command, чтобы использовать его для настройки. - person Rickard von Essen; 06.03.2018
comment
У вас есть ссылка на пример того, как использовать http-сервер для извлечения cloud-config.yml? Я сделал это с установкой Debian, но не думаю, что смогу повторно использовать этот код. Пример Debian: preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/{{user preeseed_file}} ‹wait› - person Roman Mik; 06.03.2018
comment
В конце я добавил каталог http и команду загрузки в соответствии с вашим предложением. - person Roman Mik; 06.03.2018
comment
Рикард, я хотел бы принять ваш ответ в качестве ответа, но не могли бы вы просмотреть мое решение и улучшить его или скопировать и вставить его в свой ответ, пожалуйста? Однострочники элегантны, но все же больше подходят для комментариев, чем для ответов :) - person Roman Mik; 06.03.2018
comment
Я разговариваю по телефону, поэтому не стесняйтесь отвечать и принимать свой собственный ответ. Также было бы неплохо поднять вопрос с RancherOS, чтобы исправить документы. - person Rickard von Essen; 06.03.2018

Это сработало для меня.


{
  "variables": {
    "vcpus": "1",
    "disk_size": "30000",
    "ftp_proxy": "{{ env `ftp_proxy` }}",
    "headless": "false",
    "iso_checksum": "sha256:d70520b1edd51d3f45a407fbffd820ec4b5cc4a6b7a73d822a687facd9c07e92",
    "iso_url": "https://github.com/rancher/os/releases/download/v1.5.6/rancheros.iso",
    "memory": "2048",
    "ssh_password": "rancher",
    "ssh_username": "rancher",
    "version": "0.1.0",
    "ENVIRONMENT": "master",
    "vm_name": "{{user `ENVIRONMENT`}}-rancher",
    "format": "ovf",
    "http_server": "http://{{ .HTTPIP }}:{{ .HTTPPort }}/",
    "output_path": "output-{{ user `vm_name` }}"
  },
  "builders": [
    {
      "boot_command": [
        "<enter>",
        "wget http://{{ .HTTPIP }}:{{ .HTTPPort }}/{{ user `vm_name` }}-cloud-config.yml <enter>",
        "sudo ros install -d /dev/sda -f -c {{ user `vm_name` }}-cloud-config.yml -no-reboot <enter>",
        "<wait15>",
        "sudo shutdown <enter>"
      ],
      "boot_wait": "30s",
      "communicator": "none",
      "cpus": "{{ user `vcpus` }}",
      "disk_size": "{{ user `disk_size` }}",
      "guest_os_type": "Linux_64",
      "headless": "{{ user `headless` }}",
      "http_directory": "http",
      "iso_checksum": "{{ user `iso_checksum` }}",
      "iso_url": "{{ user `iso_url` }}",
      "memory": "{{ user `memory` }}",
      "format": "{{ user `format` }}",
      "output_directory": "{{ user `output_path` }}",
      "disable_shutdown": true,
      "shutdown_timeout": "5m",
      "type": "virtualbox-iso",
      "vm_name": "{{ user `vm_name` }}",
      "guest_additions_mode": "disable",
      "virtualbox_version_file": ""
    }
  ]
}
person jmcgrath207    schedule 21.10.2020