Packer: amazon-ebs:错误等待SSH:握手失败:ssh:无法验证

创建于 2014-01-04  ·  46评论  ·  资料来源: hashicorp/packer

我注意到#130之前曾发生过此问题,但是我不确定这是否是同一问题。

我试图分阶段构建自己的图像。 我从官方发行版ami转到“原始”映像,然后从“原始”映像转到“自举”映像。

official -> raw -> bootstrapped -> base

其中“原始”基本上是官方映像的本地副本,引导程序包括Puppet和Docker,而基本映像是Puppet Apply运行的结果,该运行会安装和配置我们的公用程序。

我正在为Ubuntu 12.04和CentOS 6.4创建AMI /图像。

使用Ubuntu,我已经成功完成了“原始”和“自举”映像。 使用CentOS,“原始”映像可以很好地构建(尽管我不得不增加ssh_timeout设置)。 但是,当使用CentOS从“原始”到“引导”时,它将失败并显示:

==> amazon-ebs: Error waiting for SSH: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain

值得注意的是,我的“原始”版本执行的是Shell脚本,但是该Shell脚本为_empty_,因此,我所知没有发生可能导致此问题的文件系统更改。

命令

export PACKER_LOG=1
packer build packer-config.json

packer-config.json

{    
    "builders": [
        {
            "type": "amazon-ebs",
            "access_key": "...",
            "secret_key": "...",
            "region": "us-east-1",
            "source_ami": "ami-8bf0c4e2",
            "instance_type": "m1.small",
            "ssh_username": "root",
            "ami_name": "c2c-puppet-docker-centos-6.4 {{isotime | clean_ami_name}}",
            "ami_description": "C2C Bootstrapped Image for CentOS 6.4 - Includes Puppet and Docker - Built with Packer.io",
            "ssh_timeout" : "10m"
        }
    ],

    "provisioners": [
        {
            "type": "shell",
            "scripts": [
                "scripts/docker.sh",
                "scripts/puppet.sh"
            ],
            "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} sudo -E '{{ .Path }}'"
        }
    ],
    "post-processors": [
        {
            "type": "vagrant",
            "keep_input_artifact": true
        }
    ]
}

输出

2014/01/04 11:45:37 Packer Version: 0.5.1  eeefde8fc71444fdfc77711dc0e2789fa9b3b7d2
2014/01/04 11:45:37 Packer Target OS/Arch: linux amd64
2014/01/04 11:45:37 Built with Go Version: go1.2
2014/01/04 11:45:37 Detected home directory from env var: /home/ubuntu
2014/01/04 11:45:37 Attempting to open config file: /home/ubuntu/.packerconfig
2014/01/04 11:45:37 File doesn't exist, but doesn't need to. Ignoring.
2014/01/04 11:45:37 Packer config: &{PluginMinPort:0 PluginMaxPort:0 Builders:map[amazon-ebs:packer-builder-amazon-ebs amazon-chroot:packer-builder-amazon-chroot docker:packer-builder-docker openstack:packer-builder-openstack virtualbox-iso:packer-builder-virtualbox-iso virtualbox-ovf:packer-builder-virtualbox-ovf amazon-instance:packer-builder-amazon-instance digitalocean:packer-builder-digitalocean googlecompute:packer-builder-googlecompute qemu:packer-builder-qemu vmware-iso:packer-builder-vmware-iso vmware-vmx:packer-builder-vmware-vmx] Commands:map[build:packer-command-build fix:packer-command-fix inspect:packer-command-inspect validate:packer-command-validate] PostProcessors:map[vagrant:packer-post-processor-vagrant vsphere:packer-post-processor-vsphere] Provisioners:map[ansible-local:packer-provisioner-ansible-local chef-solo:packer-provisioner-chef-solo file:packer-provisioner-file puppet-masterless:packer-provisioner-puppet-masterless shell:packer-provisioner-shell salt-masterless:packer-provisioner-salt-masterless]}
2014/01/04 11:45:37 Setting cache directory: /home/ubuntu/c2c-virtual-env/_build/packer/aws/centos/6.4/bootstrapped/packer_cache
2014/01/04 11:45:37 Environment.Cli: []string{"build", "packer-config.json"}
2014/01/04 11:45:37 command + args: []string{"build", "packer-config.json"}
2014/01/04 11:45:37 Loading command: build
2014/01/04 11:45:37 Creating plugin client for path: /usr/local/packer/packer-command-build
2014/01/04 11:45:37 Starting plugin: /usr/local/packer/packer-command-build []string{"/usr/local/packer/packer-command-build"}
2014/01/04 11:45:37 Waiting for RPC address for: /usr/local/packer/packer-command-build
2014/01/04 11:45:37 /usr/local/packer/packer-command-build: 2014/01/04 11:45:37 Plugin build against Packer 'eeefde8fc71444fdfc77711dc0e2789fa9b3b7d2'
2014/01/04 11:45:37 /usr/local/packer/packer-command-build: 2014/01/04 11:45:37 Plugin minimum port: 10000
2014/01/04 11:45:37 /usr/local/packer/packer-command-build: 2014/01/04 11:45:37 Plugin maximum port: 25000
2014/01/04 11:45:37 /usr/local/packer/packer-command-build: 2014/01/04 11:45:37 Plugin address: unix /tmp/packer-plugin419864228
2014/01/04 11:45:37 /usr/local/packer/packer-command-build: 2014/01/04 11:45:37 Waiting for connection...
2014/01/04 11:45:37 /usr/local/packer/packer-command-build: 2014/01/04 11:45:37 Serving a plugin connection...
2014/01/04 11:45:37 Executing command: build
2014/01/04 11:45:37 Loading builder: amazon-ebs
2014/01/04 11:45:37 Creating plugin client for path: /usr/local/packer/packer-builder-amazon-ebs
2014/01/04 11:45:37 Starting plugin: /usr/local/packer/packer-builder-amazon-ebs []string{"/usr/local/packer/packer-builder-amazon-ebs"}
2014/01/04 11:45:37 /usr/local/packer/packer-command-build: 2014/01/04 11:45:37 Reading template: packer-config.json
2014/01/04 11:45:37 /usr/local/packer/packer-command-build: 2014/01/04 11:45:37 Creating build: amazon-ebs
2014/01/04 11:45:37 Waiting for RPC address for: /usr/local/packer/packer-builder-amazon-ebs
2014/01/04 11:45:37 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:45:37 Plugin build against Packer 'eeefde8fc71444fdfc77711dc0e2789fa9b3b7d2'
2014/01/04 11:45:37 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:45:37 Plugin minimum port: 10000
2014/01/04 11:45:37 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:45:37 Plugin maximum port: 25000
2014/01/04 11:45:37 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:45:37 Plugin address: unix /tmp/packer-plugin295778018
2014/01/04 11:45:37 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:45:37 Waiting for connection...
2014/01/04 11:45:37 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:45:37 Serving a plugin connection...
2014/01/04 11:45:37 Loading post-processor: vagrant
2014/01/04 11:45:37 Creating plugin client for path: /usr/local/packer/packer-post-processor-vagrant
2014/01/04 11:45:37 Starting plugin: /usr/local/packer/packer-post-processor-vagrant []string{"/usr/local/packer/packer-post-processor-vagrant"}
2014/01/04 11:45:37 Waiting for RPC address for: /usr/local/packer/packer-post-processor-vagrant
2014/01/04 11:45:37 /usr/local/packer/packer-post-processor-vagrant: 2014/01/04 11:45:37 Plugin build against Packer 'eeefde8fc71444fdfc77711dc0e2789fa9b3b7d2'
2014/01/04 11:45:37 /usr/local/packer/packer-post-processor-vagrant: 2014/01/04 11:45:37 Plugin minimum port: 10000
2014/01/04 11:45:37 /usr/local/packer/packer-post-processor-vagrant: 2014/01/04 11:45:37 Plugin maximum port: 25000
2014/01/04 11:45:37 /usr/local/packer/packer-post-processor-vagrant: 2014/01/04 11:45:37 Plugin address: unix /tmp/packer-plugin962302759
2014/01/04 11:45:37 /usr/local/packer/packer-post-processor-vagrant: 2014/01/04 11:45:37 Waiting for connection...
2014/01/04 11:45:37 /usr/local/packer/packer-post-processor-vagrant: 2014/01/04 11:45:37 Serving a plugin connection...
2014/01/04 11:45:37 Loading provisioner: shell
2014/01/04 11:45:37 Creating plugin client for path: /usr/local/packer/packer-provisioner-shell
2014/01/04 11:45:37 Starting plugin: /usr/local/packer/packer-provisioner-shell []string{"/usr/local/packer/packer-provisioner-shell"}
2014/01/04 11:45:37 Waiting for RPC address for: /usr/local/packer/packer-provisioner-shell
2014/01/04 11:45:37 /usr/local/packer/packer-provisioner-shell: 2014/01/04 11:45:37 Plugin build against Packer 'eeefde8fc71444fdfc77711dc0e2789fa9b3b7d2'
2014/01/04 11:45:37 /usr/local/packer/packer-provisioner-shell: 2014/01/04 11:45:37 Plugin minimum port: 10000
2014/01/04 11:45:37 /usr/local/packer/packer-provisioner-shell: 2014/01/04 11:45:37 Plugin maximum port: 25000
2014/01/04 11:45:37 /usr/local/packer/packer-provisioner-shell: 2014/01/04 11:45:37 Plugin address: unix /tmp/packer-plugin536453881
2014/01/04 11:45:37 /usr/local/packer/packer-provisioner-shell: 2014/01/04 11:45:37 Waiting for connection...
2014/01/04 11:45:37 /usr/local/packer/packer-provisioner-shell: 2014/01/04 11:45:37 Serving a plugin connection...
2014/01/04 11:45:37 ui: amazon-ebs output will be in this color.
amazon-ebs output will be in this color.
2014/01/04 11:45:37 ui:

2014/01/04 11:45:37 /usr/local/packer/packer-command-build: 2014/01/04 11:45:37 Build debug mode: false
2014/01/04 11:45:37 /usr/local/packer/packer-command-build: 2014/01/04 11:45:37 Force build: false
2014/01/04 11:45:37 /usr/local/packer/packer-command-build: 2014/01/04 11:45:37 Preparing build: amazon-ebs
2014/01/04 11:45:37 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:45:37 Config: {PackerConfig:{PackerBuildName:amazon-ebs PackerBuilderType:amazon-ebs PackerDebug:false PackerForce:false PackerUserVars:map[]} AccessConfig:{AccessKey:<Filtered> SecretKey:<Filtered> RawRegion:us-east-1} AMIConfig:{AMIName:c2c-puppet-docker-centos-6.4 2014-01-04T11-45-37Z AMIDescription:C2C Bootstrapped Image for CentOS 6.4 - Includes Puppet and Docker - Built with Packer.io AMIUsers:[] AMIGroups:[] AMIProductCodes:[] AMIRegions:[] AMITags:map[]} BlockDevices:{AMIMappings:[] LaunchMappings:[]} RunConfig:{AssociatePublicIpAddress:false AvailabilityZone: IamInstanceProfile: InstanceType:m1.small RunTags:map[] SourceAmi:ami-8bf0c4e2 RawSSHTimeout:10m SSHUsername:root SSHPort:22 SecurityGroupId: SecurityGroupIds:[] SubnetId: TemporaryKeyPairName:packer 52c7f461-5531-19cd-3cc0-f189b99a296f UserData: UserDataFile: VpcId: sshTimeout:600000000000} tpl:0xc2100c3c20}
2014/01/04 11:45:37 /usr/local/packer/packer-command-build: 2014/01/04 11:45:37 Waiting on builds to complete...
2014/01/04 11:45:37 /usr/local/packer/packer-command-build: 2014/01/04 11:45:37 Starting build run: amazon-ebs
2014/01/04 11:45:37 /usr/local/packer/packer-command-build: 2014/01/04 11:45:37 Running builder: amazon-ebs
==> amazon-ebs: Creating temporary keypair: packer 52c7f461-5531-19cd-3cc0-f189b99a296f
2014/01/04 11:45:37 ui: ==> amazon-ebs: Creating temporary keypair: packer 52c7f461-5531-19cd-3cc0-f189b99a296f
==> amazon-ebs: Creating temporary security group for this instance...
2014/01/04 11:45:38 ui: ==> amazon-ebs: Creating temporary security group for this instance...
2014/01/04 11:45:38 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:45:38 Temporary group name: packer 52c7f462-da4e-aefb-5c6f-05d7469d5b5a
==> amazon-ebs: Authorizing SSH access on the temporary security group...
2014/01/04 11:45:38 ui: ==> amazon-ebs: Authorizing SSH access on the temporary security group...
==> amazon-ebs: Launching a source AWS instance...
2014/01/04 11:45:39 ui: ==> amazon-ebs: Launching a source AWS instance...
    amazon-ebs: Instance ID: i-7428bc54
2014/01/04 11:45:39 ui:     amazon-ebs: Instance ID: i-7428bc54
==> amazon-ebs: Waiting for instance (i-7428bc54) to become ready...
2014/01/04 11:45:39 ui: ==> amazon-ebs: Waiting for instance (i-7428bc54) to become ready...
2014/01/04 11:45:39 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:45:39 Waiting for state to become: running
2014/01/04 11:46:11 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:11 Waiting for SSH, up to timeout: 10m0s
==> amazon-ebs: Waiting for SSH to become available...
2014/01/04 11:46:11 ui: ==> amazon-ebs: Waiting for SSH to become available...
2014/01/04 11:46:19 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:19 TCP connection to SSH ip/port failed: dial tcp 10.180.230.59:22: no route to host
2014/01/04 11:46:28 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:28 TCP connection to SSH ip/port failed: dial tcp 10.180.230.59:22: no route to host
2014/01/04 11:46:33 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:33 TCP connection to SSH ip/port failed: dial tcp 10.180.230.59:22: connection refused
2014/01/04 11:46:38 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:38 Attempting SSH connection...
2014/01/04 11:46:38 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:38 reconnecting to TCP connection for SSH
2014/01/04 11:46:38 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:38 handshaking with SSH
2014/01/04 11:46:39 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:39 handshake error: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:46:39 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:39 SSH handshake err: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:46:39 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:39 Detected authentication error. Increasing handshake attempts.
2014/01/04 11:46:44 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:44 Attempting SSH connection...
2014/01/04 11:46:44 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:44 reconnecting to TCP connection for SSH
2014/01/04 11:46:44 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:44 handshaking with SSH
2014/01/04 11:46:44 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:44 handshake error: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:46:44 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:44 SSH handshake err: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:46:44 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:44 Detected authentication error. Increasing handshake attempts.
2014/01/04 11:46:50 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:50 Attempting SSH connection...
2014/01/04 11:46:50 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:50 reconnecting to TCP connection for SSH
2014/01/04 11:46:50 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:50 handshaking with SSH
2014/01/04 11:46:50 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:50 handshake error: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:46:50 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:50 SSH handshake err: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:46:50 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:50 Detected authentication error. Increasing handshake attempts.
2014/01/04 11:46:55 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:55 Attempting SSH connection...
2014/01/04 11:46:55 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:55 reconnecting to TCP connection for SSH
2014/01/04 11:46:55 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:55 handshaking with SSH
2014/01/04 11:46:55 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:55 handshake error: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:46:55 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:55 SSH handshake err: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:46:55 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:46:55 Detected authentication error. Increasing handshake attempts.
2014/01/04 11:47:00 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:00 Attempting SSH connection...
2014/01/04 11:47:00 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:00 reconnecting to TCP connection for SSH
2014/01/04 11:47:00 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:00 handshaking with SSH
2014/01/04 11:47:00 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:00 handshake error: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:47:00 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:00 SSH handshake err: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:47:00 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:00 Detected authentication error. Increasing handshake attempts.
2014/01/04 11:47:06 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:06 Attempting SSH connection...
2014/01/04 11:47:06 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:06 reconnecting to TCP connection for SSH
2014/01/04 11:47:06 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:06 handshaking with SSH
2014/01/04 11:47:06 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:06 handshake error: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:47:06 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:06 SSH handshake err: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:47:06 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:06 Detected authentication error. Increasing handshake attempts.
2014/01/04 11:47:11 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:11 Attempting SSH connection...
2014/01/04 11:47:11 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:11 reconnecting to TCP connection for SSH
2014/01/04 11:47:11 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:11 handshaking with SSH
2014/01/04 11:47:11 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:11 handshake error: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:47:11 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:11 SSH handshake err: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:47:11 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:11 Detected authentication error. Increasing handshake attempts.
2014/01/04 11:47:16 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:16 Attempting SSH connection...
2014/01/04 11:47:16 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:16 reconnecting to TCP connection for SSH
2014/01/04 11:47:16 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:16 handshaking with SSH
2014/01/04 11:47:17 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:17 handshake error: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:47:17 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:17 SSH handshake err: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:47:17 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:17 Detected authentication error. Increasing handshake attempts.
2014/01/04 11:47:22 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:22 Attempting SSH connection...
2014/01/04 11:47:22 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:22 reconnecting to TCP connection for SSH
2014/01/04 11:47:22 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:22 handshaking with SSH
2014/01/04 11:47:22 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:22 handshake error: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:47:22 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:22 SSH handshake err: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:47:22 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:22 Detected authentication error. Increasing handshake attempts.
2014/01/04 11:47:27 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:27 Attempting SSH connection...
2014/01/04 11:47:27 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:27 reconnecting to TCP connection for SSH
2014/01/04 11:47:27 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:27 handshaking with SSH
2014/01/04 11:47:27 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:27 handshake error: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:47:27 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:27 SSH handshake err: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:47:27 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:27 Detected authentication error. Increasing handshake attempts.
==> amazon-ebs: Error waiting for SSH: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2014/01/04 11:47:27 ui error: ==> amazon-ebs: Error waiting for SSH: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
==> amazon-ebs: Terminating the source AWS instance...
2014/01/04 11:47:27 ui: ==> amazon-ebs: Terminating the source AWS instance...
2014/01/04 11:47:28 /usr/local/packer/packer-builder-amazon-ebs: 2014/01/04 11:47:28 Waiting for state to become: terminated
==> amazon-ebs: Deleting temporary security group...
2014/01/04 11:48:16 ui: ==> amazon-ebs: Deleting temporary security group...
==> amazon-ebs: Deleting temporary keypair...
2014/01/04 11:48:16 ui: ==> amazon-ebs: Deleting temporary keypair...
Build 'amazon-ebs' finished.
2014/01/04 11:48:16 ui: Build 'amazon-ebs' finished.
2014/01/04 11:48:16 /usr/local/packer/packer-command-build: 2014/01/04 11:48:16 Builds completed. Waiting on interrupt barrier...

==> Builds finished. The artifacts of successful builds are:
2014/01/04 11:48:16 ui:
==> Builds finished. The artifacts of successful builds are:
2014/01/04 11:48:16 machine readable: amazon-ebs,artifact-count []string{"0"}
2014/01/04 11:48:16 waiting for all plugin processes to complete...
2014/01/04 11:48:16 /usr/local/packer/packer-post-processor-vagrant: plugin process exited
2014/01/04 11:48:16 /usr/local/packer/packer-provisioner-shell: plugin process exited
2014/01/04 11:48:16 [ERR] Error reading stream direction: EOF
2014/01/04 11:48:16 [INFO] Mux connection loop exiting
2014/01/04 11:48:16 [ERR] Error reading stream direction: EOF
2014/01/04 11:48:16 [INFO] Mux connection loop exiting
2014/01/04 11:48:16 [ERR] Error reading stream direction: read unix /tmp/packer-plugin419864228: connection reset by peer
2014/01/04 11:48:16 [INFO] Mux connection loop exiting
2014/01/04 11:48:16 /usr/local/packer/packer-command-build: plugin process exited
2014/01/04 11:48:16 [ERR] Error reading stream direction: EOF
2014/01/04 11:48:16 [INFO] Mux connection loop exiting
2014/01/04 11:48:16 /usr/local/packer/packer-builder-amazon-ebs: plugin process exited
buildeamazon question

最有用的评论

CentOS 7的ssh_username必须设置为centos以避免出现错误消息:

生成“ amazon-ebs”错误:ssh:握手失败:ssh:无法进行身份验证,尝试使用方法[无公钥],没有支持的方法

所有46条评论

我今天也看到了

也看到了同样的事情。 今天尝试使用包装机0.5.1。 以前和0.4.1一样。

即使通过EC2控制台手动启动Packer创建的“原始”映像,也无法使用SSH和密钥对手动登录。 要求输入密码。

仅与CentOS有关。 可与Ubuntu和RHEL一起使用。

我犯了同样的错误。 使用CentOS。

同样在这里,我使用CentO遇到相同的错误。 我可以成功创建虚拟网络,云服务,VM,磁盘等。但是最后,在运行预配器之前,它会失败,并显示完全相同的错误! 有人找到解决方案了吗?

我也遇到同样的问题。 尝试过

  1. Ubuntu的中型实例(ubuntu-precise-12.04-amd64-server-20120616-5cc062dc-4b61-4424-bc43-416e51483a1f-ami-82fa58eb.1(ami-967edcff))
  2. 收到此错误:等待SSH的错误:握手失败:ssh:无法通过身份验证,尝试的方法[无公钥],没有支持的方法

这里有CentOS 6.5映像的相同错误消息。

同样在这里,Amazon Linux AMI ami-bba18dd2

问题是(可能是)原始CentOS映像从元数据服务器获取其ssh密钥对的时间。 做到这一点的代码位于rc.local中,并且运行_after_ SSH启动。 根据打包程序尝试进​​行身份验证的时间,它可能会捕获侦听的SSH守护程序,但没有捕获root用户的授权密钥。

Packer可以选择重试失败的SSH认证,这真是太棒了。

我只是遇到了这个问题,花了一个小时试图弄清楚黑客正在发生什么。 这是我的情况,与您的情况非常相似。 我想在基于CentOS 6的亚马逊环境中建立一个最小的环境。我想要的只是一个完全修补的AMI,因此我可以在此基础上开始配置。 我遇到了同样的握手失败问题。

这是正在发生的事情:
原始的CentOS ami有一个脚本(/etc/rc.d/rc.local),该脚本从Amazon获取公共密钥并将其设置为root帐户。 仅当根帐户没有任何关联密钥(/root/.ssh/authorized_keys不存在)时,此脚本才会尝试获取密钥。 基本映像就是这种情况,但是一旦“重新打包”它,它将保存初始公共密钥(在此“配置”会话中从亚马逊获取),因此,当您启动自己的AMI时,脚本将不会获取来自亚马逊的密钥(因为root已经具有密钥)。

在修补AMI之后,我只是做了一个“ rm -rf /root/.ssh/authorized_keys”。 就我而言,这与打包程序无关,它是解决方案的CentOS密钥获取脚本。

@ felin-arch-非常感谢您撰写本文。 由于您的绅士风度,我的头发完好无损。

@ felin-arch,这确实解决了OP描述的问题的一种情况,但是从官方-> raw来看,该问题也存在。 如果@mitchellh认为此问题已结束,我可以提交一个新的bug,从官方图片中详细说明问题。

我的解决方法是通过安装到chroot中并配置cloud-init来处理密钥设置,并删除dist rc.local中的位,以构建新的基础映像。

@ felin-arch @ mwedgwood-rmn伙计们,所以该问题已通过某种方式解决,但在Centos6.5上仍然看到相同的问题。
“ ==> amazon-ebs:等待SSH时出错:ssh:握手失败:ssh:无法进行身份验证,尝试了方法[无公钥],没有支持的方法”
或者只是一种方法-手动重建基本AMI的解决方法?

@是,
_short_:这不是打包程序的问题。 上面描述的两个解决方法可以用来避免此行为。
_long_:我认为打包机不能采取任何合理的措施来解决此问题。 Packer可以正常工作,不一致之处来自官方映像获取密钥的方式。 上面有两种解决方法,它们都在本质上调整了密钥获取方法。 正如@ mwedgwood-rmn所述,他描述了如何在cloud-init中处理密钥设置,并从rc.local中删除了原始密钥设置代码。 我只是在保存AMI之前就删除了根密钥,因此原始的rc.local脚本将在下次启动时再次获取它。

@ felin-arch好,谢谢您的快速回答。 得到它了。

我同意@ felin-arch。 对不起大家。

我认为实际原因是不同的:AWS提供的“提供的” AMI,然后将密钥添加到ec2-user用户。 这有点硬编码,并由cloud-init脚本强制执行。

对我来说,添加“ ssh_username”:“ ec2-user”使其可以工作(在CentOS AMI上),使用基于Ubuntu的AMI时需要ubuntu。
在这两种情况下,root都不起作用。

我可以确认@igmar的解决方案,对我来说似乎是正确的解决方案。 甚至除了Packer之外,尝试以用户ubuntu ssh进入基于CentOS的AMI都会超时,但是成功将用户更改为ec2-user成功的。

作为参考,CentOS 6.5官方映像上/etc/rc.d/rc.local的内容如下:

$ cat /etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

# set a random pass on first boot
if [ -f /root/firstrun ]; then 
  dd if=/dev/urandom count=50|md5sum|passwd --stdin root
  passwd -l root
  rm /root/firstrun
fi

if [ ! -d /root/.ssh ]; then
  mkdir -m 0700 -p /root/.ssh
  restorecon /root/.ssh
fi
# Get the root ssh key setup
ReTry=0
while [ ! -f /root/.ssh/authorized_keys ] && [ $ReTry -lt 10 ]; do
  sleep 2
  curl -f http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key > /root/.ssh/pubkey
  if [ 0 -eq 0 ]; then
    mv /root/.ssh/pubkey /root/.ssh/authorized_keys
  fi
  ReTry=$[Retry+1]
done
chmod 600 /root/.ssh/authorized_keys && restorecon /root/.ssh/authorized_keys

使用“ rm -rf /root/.ssh/authorized_keys”重建官方的Ubuntu基本映像是否也可以解决此问题?

@ hyperfocus1337我相信是的。 基本上这就是我所做的。

我会尝试一下并报告。

不幸的是没有为我解决。 我使用默认的Ubuntu 14.04 AMI(ami-9eaa1cf6)手动创建了一个ec2实例,然后通过ssh登录并运行了命令“ rm -rf /root/.ssh/authorized_keys”。 之后,我保存了快照。

再次使用自行创建的源ami和ebs快照运行模板,这给我带来了同样的问题。 我在这里共享了我的打包程序模板: https :

关于如何进一步解决此问题的任何提示?

您正在尝试以ubuntu用户身份登录到计算机。 您删除了root用户的密钥。 您必须检查Ubuntu获取密钥并更改方法的确切方法。

我不知道Ubuntu如何获取密钥,但是我想它的作用与CentOS相同。 唯一的区别是,它在ubuntu用户下而不是root下添加密钥。

这次,我删除了无效的root和ubuntu用户的authorized_keys文件。 同样,仅针对Ubuntu用户删除它也不起作用。 还尝试使用私密ssh密钥,甚至无法手动登录。

还有另一种方法可以使amazon-ebs构建器与Ubuntu一起使用吗? 在哪里可以找到CentOS 6.5上的“ /etc/rc.d/rc.local”脚本的Ubuntu版本? 我的模板上的“ ami_block_device_mappings”设置是否正确设置,我不确定是否完全理解。

一旦Packer自动创建了一个ssh密钥,它将在哪里存储以供以后访问? 该文档仅提及-debug标志。 听起来好像不是检索它的唯一方法。

@ hyperfocus1337 ,您将不得不检查Ubuntu所做的操作以获取密钥。 我记得当您使用-debug时,它将密钥保存到当前目录(我认为它也将密钥位置回显到控制台)。

再次感谢您的快速回复。 您能否详细说明“ Ubuntu如何获取密钥”? 试图研究它,但我不知道从哪里开始。 我应该查看哪些文件/目录?

我应该浏览Upstart还是Systemd文件? 由于Ubuntu不使用CentOS这样的初始化系统。

启动EC2实例时,您可以指定要用于访问该计算机的密钥。 VM需要先设置此密钥,然后才能访问它。 各种发行版使用不同的方式从AWS提取正确的公钥。
不过有一件很普遍的事:他们都从http://169.254.169.254取回它

是的,init.d将是一个好的开始。 Cloud-init必须具有一些可为您提供帮助的文档。

我认为这是脚本,它位于/ usr / lib / cloud-init / write-ssh-key-fingerprints。 Ubuntu 14.04上所有云初始化文件的列表位于: http :

#!/bin/sh

logger_opts="-p user.info -t ec2"

# rhels' version of logger_opts does not support long
# for of -s (--stderr), so use short form.
logger_opts="$logger_opts -s"

# Redirect stderr to stdout
exec 2>&1

fp_blist=",${1},"
key_blist=",${2},"
{
echo
echo "#############################################################"
echo "-----BEGIN SSH HOST KEY FINGERPRINTS-----"
for f in /etc/ssh/ssh_host_*key.pub; do
    [ -f "$f" ] || continue
    read ktype line < "$f"
    # skip the key if its type is in the blacklist
    [ "${fp_blist#*,$ktype,}" = "${fp_blist}" ] || continue
    ssh-keygen -l -f "$f"
done
echo "-----END SSH HOST KEY FINGERPRINTS-----"
echo "#############################################################"

} | logger $logger_opts

echo "-----BEGIN SSH HOST KEY KEYS-----"
for f in /etc/ssh/ssh_host_*key.pub; do
    [ -f "$f" ] || continue
    read ktype line < "$f"
    # skip the key if its type is in the blacklist
    [ "${key_blist#*,$ktype,}" = "${key_blist}" ] || continue
    cat $f
done
echo "-----END SSH HOST KEY KEYS-----"

另一个可能有趣的云初始化配置选项是: https: //cloudinit.readthedocs.org/en/latest/topics/examples.html#configure -instances-ssh-keys。 还有三个ssh模块: https :

我对脚本语言不太满意,也许自己经验不足。 但我会尽力弄清楚并报告。 但是与此同时,有人可以帮助我验证它的作用并帮助确定应该采取哪些步骤来解决此问题?

您在上面发布的脚本不进行任何键提取。 我四处搜寻,您可能需要使用ec2-user进行登录。在尝试使事情自动化之前,您可能需要手动执行所有步骤,以确保您了解打包器在运行时发生了什么。

ec2-user是什么意思? 您的Amazon IAM用户名? 用Packer模板登录吗? 尝试过:

  • EC2用户(我的Amazon IAM用户名)和自定义定义的Amazon自动生成的private_key_file
  • 没有private_key_file的EC2用户
  • 具有默认Ubuntu 14.04 AMI的EC2用户:AMI-9EAA1CF6

不幸的是还没有工作。 对如何进行一无所知。

@sethvargo @mitchellh目前,Amazon-ebs生成器对于Ubuntu用户并没有太多用处,即使没有关于如何使SSH登录正常工作的明确说明,即使在Packer方面也不是问题。 而且我猜很多用户同时使用EC2和Ubuntu。 希望能够将其与Atlas集成在一起。

这是我的模板: https :

@ felin-arch这是我遇到的问题的解决方法,谢谢!

CentOS 7的ssh_username必须设置为centos以避免出现错误消息:

生成“ amazon-ebs”错误:ssh:握手失败:ssh:无法进行身份验证,尝试使用方法[无公钥],没有支持的方法

@EliasGoldberg的解决方案为我工作。

@EliasGoldberg的解决方案在CentOS 7上也对我

设置为centos的ssh_username也对我有用(在CentOs 7上)

我可以确认@EliasGoldberg的解决方案对我

是的,它也与ubuntu用户一起让我惊呆了。 使用默认模板给出错误

设置“正确”用户也为我解决了错误-谢谢大家。

仅供参考-在以下提示中有基于实例类型的SSH用户列表: http :

这是此时的小费...

小费
对于Amazon Linux,用户名是ec2-user。 对于RHEL,用户名是ec2-user或root。 对于Ubuntu,用户名是ubuntu或root。 对于Centos,用户名是centos。 对于Fedora,用户名是ec2-user。 对于SUSE,用户名是ec2-user或root。 否则,如果ec2-user和root不起作用,请与AMI供应商联系。

数据库

有趣的是,我遇到了这个问题,原因是我在source_ami_filter使用的名称。
如下所示,我使用的是Base-*但实际上我要构建的基本AMI只是称为base-1511969253

"builders": [{
  "source_ami_filter": {
    "filters": {
      "virtualization-type": "hvm",
      "name": "Base-*",
      "root-device-type": "ebs"
    },
    "most_recent": true
  }
}]

如果我的名字完全错误,那么它会很早就说找不到AMI。 但是使用带有错误大小写的名称似乎允许它找到AMI,但在SSH连接部分失败并触发此错误:- Error waiting for SSH: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain

我使用ubuntu/images/*ubuntu-xenial-16.04-amd64-server-*创建基础图像。 不确定是否相关。 可能是这种区分大小写的行为会影响非Ubuntu AMI

@codekipple真的很有趣...也许我们应该在文档中添加一行,说明ami名称区分大小写。

@codekipple该过滤器的最大问题是您不指定所有者或AMI,因此您将获得与您的过滤器匹配的最新公共AMI。 “始终”指定owners

@ rickard-von-essen啊,好的,我是Packer的新手,我正在尝试创建一个系统来在4个不同的AWS账户中创建AMI。 我故意省略了所有者,因此它适用于所有帐户,而且我不必跟踪所有者ID。

我通过忘记添加(aws帐户的)public_key_pair解决了它
我有相同的错误消息“ amazon-ebs:等待SSH时出错:ssh:握手失败:ssh:无法进行身份验证,尝试了方法[无公钥],没有支持的方法”,问题是我忘记了提供SSH_KEYPAIR_NAME来被docker化的Packer。 添加kaypair名称后,即可使用!

FWIW,我评论了原始的“ ec2-user”用户名,并由于从.kitchen.yml中提取了该错误而一直收到此错误。 您应该只对“用户名”有一个参考!

"builders" : [
        {
            "type" : "amazon-ebs",
            "profile" : "your-aws-profile",
            "region" : "{{user `region`}}",
            "instance_type" : "t2.micro",
            "source_ami" : "ami-XXXX",
            "communicator": "ssh",
            "ssh_username" : "ubuntu",
            "ssh_keypair_name": "XXXX",
            "ssh_private_key_file": "/path/to/XXXX.pem",
            "ami_name" : "Ubuntu-Sample-AMI",
            "ami_description" : "Some message",
            "run_tags" : {
                "Name" : "Hello World",
                "Tool" : "Packer",
                "Author" : "XXXX"
            }
        }
  ]

为不同的Linux版本提供正确的用户名非常重要。
RHEL:ec2用户
Amazon Linux:ec2用户
CentOS:centos
Ubuntu的:Ubuntu的

我希望这可以节省您的时间!

我将锁定此问题,因为它已关闭_30天_⏳。 这可以帮助我们的维护人员发现并集中精力解决当前存在的问题。

如果您发现了一个与此相似的问题,请打开一个新问题并完成问题模板,以便我们捕获所有必要的详细信息以进行进一步调查。

此页面是否有帮助?
0 / 5 - 0 等级