gpt4 book ai didi

azure - 通过 API 使用 ssh key 创建 Azure VM

转载 作者:行者123 更新时间:2023-12-02 14:08:59 35 4
gpt4 key购买 nike

因此,我花了一天的大部分时间尝试浏览 Azure API 文档,终于我已经到了启动虚拟机的阶段。

在过去的几个小时里,我一直在尝试使用公钥创建一个虚拟机,以便我可以通过 ssh 访问它。但是,它似乎无法验证我的身份。

这是我的代码:

这会将证书添加到服务中:

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)

这是使用 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')

当我尝试 ssh 进入计算机时,我收到以下日志:

ssh -i mycert.key -v <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="9ceef3f4fdf2dcf8eba5e5adede6ebecaeb2fff0f3e9f8fdececb2f2f9e8" rel="noreferrer noopener nofollow">[email protected]</a>
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 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8ee6e3efeda3e3eabba3ebfae3cee1feebe0fdfde6a0ede1e3" rel="noreferrer noopener nofollow">[email protected]</a> none
debug1: kex: client->server aes128-ctr <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="553d3834367838316078302138153a25303b26263d7b363a38" rel="noreferrer noopener nofollow">[email protected]</a> 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: <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="88f0f0f0f0c8efe5e9e1e4a6ebe7e5" rel="noreferrer noopener nofollow">[email protected]</a>
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).

我完全被难住了,并且希望任何想法或建议。

最佳答案

可能不完全是您想要的,但就“启动并运行 VM 并通过 ssh 连接”而言,它应该可以解决问题(使用 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

完成此操作后,我可以使用以下命令成功连接:

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

我从第一个命令吐出的 FQDN 中发现了 PUBLIC_IP。

关于azure - 通过 API 使用 ssh key 创建 Azure VM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32558045/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com