2

So I spent the better part of a day trying to navigate through the Azure API docs and finally I'm at a stage where I've got my VM up.

For the last couple of hours I've been trying to create a VM with a public key so I can ssh into it. However, it doesn't seem to be able to authenticate me.

Here's my code:

This adds the certificate to the service:

cert_path = "/home/rohan/temp/mycert.pem"

with open(cert_path, "rb") as bfile:
    cert_data = base64.b64encode(bfile.read()).decode() # decode to make sure this is a str and not a bstr
    cert_format = 'pfx'
    cert_password = ''
    cert_res = sms.add_service_certificate(service_name=hosted_service_name,
                        data=cert_data,
                        certificate_format=cert_format,
                        password=cert_password)

This is to create the VM with the ssh_key:

linux_config = LinuxConfigurationSet(vm_name, 'xxxx', 'yyyyy', True)

SERVICE_CERT_THUMBPRINT = "1058XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
linux_config.ssh = SSH()
pair = KeyPair(SERVICE_CERT_THUMBPRINT, '/home/xxxx/temp/mycert.pub')
linux_config.ssh.key_pairs.key_pairs.append(pair)

sms.create_virtual_machine_deployment(service_name=hosted_service_name,
    deployment_name=hosted_service_name,
    deployment_slot='production',
    label=hosted_service_name,
    role_name=hosted_service_name,
    system_config=linux_config,
    os_virtual_hard_disk=os_hd,
    role_size='Small')

When I try to ssh into the machine, I get the following log:

ssh -i mycert.key -v rohan@dw9y1qzwp2.cloudapp.net
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to dw9y1qzwp2.cloudapp.net [104.208.26.98] port 22.
debug1: Connection established.
debug1: identity file mycert.key type -1
debug1: identity file mycert.key-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6p1 Ubuntu-2
debug1: match: OpenSSH_6.6p1 Ubuntu-2 pat OpenSSH_6.5*,OpenSSH_6.6* compat 0x14000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5-etm@openssh.com none
debug1: kex: client->server aes128-ctr hmac-md5-etm@openssh.com none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA a2:80:7e:dc:b6:47:c5:d7:97:0a:7b:9c:75:c6:1f:85
debug1: Host 'dw9y1qzwp2.cloudapp.net' is known and matches the ECDSA host key.
debug1: Found key in /home/rohan/.ssh/known_hosts:22
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: xxxx@gmail.com
debug1: Authentications that can continue: publickey
debug1: Trying private key: mycert.key
debug1: key_parse_private2: missing begin marker
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

I'm absolutely stumped and would love Any ideas or suggestions.

Darrel Miller
  • 139,164
  • 32
  • 194
  • 243
RohanC
  • 301
  • 1
  • 3
  • 12
  • 1
    http://askubuntu.com/questions/343060/no-more-authentication-methods-to-try-permission-denied-publickey Also the exact reason for the login failure will be available in ssh log `/var/log/auth.log` or `/var/log/secure` depending on the `syslog` configuration. – abRao Sep 14 '15 at 05:58
  • 1
    Unfortunately, that answer suggests having access to both machines. I technically won't have access to the VM until I can set up a working SSH connection – RohanC Sep 14 '15 at 17:28
  • I have seen a similar issue when connecting to a remote non-azure VM - your issue is very likely to do with "permissions". When you create the VM cant you set / verify the permission? https://gist.github.com/ogrisel/5340771 – abRao Sep 14 '15 at 19:29
  • I'm intrigued by the line "debug1: key_parse_private2: missing begin marker". Are you sure your private key is formatted properly? – Neil Sant Gat Apr 19 '16 at 02:27

1 Answers1

0

Probably not exactly what you were looking for, but in terms of "getting a VM up and running and connecting via ssh", it should do the trick (using the Azure CLI: https://azure.microsoft.com/en-us/documentation/articles/xplat-cli-install/):

azure vm quick-create -g nsglinuxrg -n nsglinuxvm -l westus --os-type Linux -Q Canonical:UbuntuServer:14.04.4-LTS:latest -z Standard_D1 -u negat -p <YOUR_PWORD> -M ~/.ssh/id_rsa.pub

After doing this, I can successfully connect using:

ssh negat@<PUBLIC_IP> -i ~/.ssh/id_rsa

where I discovered the PUBLIC_IP from the FQDN spat out by the first command.

Neil Sant Gat
  • 857
  • 6
  • 10