pricing machine docs costs b1s azure ssh azure-vm-role

machine - vm windows azure



¿Cómo puedo obtener la clave de host ssh para una nueva máquina virtual Azure Linux creada con PowerShell? (5)

Quizás esto es exactamente lo que estás buscando. Lo intentaré con usted en mi cuenta ahora mismo.

Básicamente parece que necesitas adjuntar un .pem al momento de la creación.

Que debería producir su huella digital de certificado.

Si creo una VM de Azure Linux utilizando PowerShell, ¿cómo puedo obtener su nueva clave de host ssh, para que pueda instalarla en mi ssh / masilla local? Preferiblemente, la solución también es el código de PowerShell.


Envié esta pregunta al soporte de Azure. Me enviaron este enlace a información sobre un escáner de huellas digitales . Cuando expliqué lo que era SSH, y aclaré, dijeron

... este problema queda fuera del límite de soporte del Soporte de Plataforma Azure ...

¿Quién más que Azure podría darme esto? Ellos son los únicos que tienen una conexión segura conocida con la nueva máquina virtual.


Ejemplo de Windows VM

Select-AzureSubscription mysub $service = ''yourservicename1'' $location = ''West US'' New-AzureService -ServiceName $service -Location $location Add-AzureCertificate -CertToDeploy ''D:User-DatadevelopmentAzure Samplesmlwdevcert.cer'' -ServiceName $service $cert1 = New-AzureCertificateSetting -Thumbprint D7BECD4D63EBAF86023BB4F1A5FBF5C2C924902A -StoreName ''My'' New-AzureVMConfig -ImageName ''MSFT__Windows-Server-2012-Datacenter-201208.01-en.us-30GB.vhd'' -InstanceSize ''Small'' -Name ''win2012cert'' | Add-AzureProvisioningConfig -Windows -Password ''somepass@1'' -Certificates $cert1 | New-AzureVM -ServiceName $service

Ejemplo de máquina virtual de Linux

Select-AzureSubscription mysub $service = ''yourservicename1'' $location = ''West US'' New-AzureService -ServiceName $service -Location $location Add-AzureCertificate -CertToDeploy ''D:User-DatadevelopmentAzure Samplesmlwdevcert.cer'' -ServiceName $service $sshkey = New-AzureSSHKey -PublicKey -Fingerprint D7BECD4D63EBAF86023BB4F1A5FBF5C2C924902A -Path ''/home/admin/.ssh/authorized_keys'' New-AzureVMConfig -ImageName ''CANONICAL__Canonical-Ubuntu-12-04-amd64-server-20120528.1.3-en-us-30GB.vhd'' -InstanceSize ''Small'' -Name ''linuxwithcert'' | Add-AzureProvisioningConfig -Linux -LinuxUser ''mwasham'' -Password ''somepass@1'' -SSHPublicKeys $sshKey | New-AzureVM -ServiceName $service

Nota: Los parámetros -Certificados y -SSHPublicKeys son matrices para que puedan aceptar múltiples certificados. -SSHPublicKeys $ sshKey1, $ sshKey2

Para Linux también existe el parámetro -SSHKeyPairs para pasar un par de claves en lugar de solo la clave pública. -Certificados pueden manejar ambos tipos en Windows.


Las claves RSA, DSA, ECDSA y ED25519 se generan en el primer arranque y están disponibles en el registro de diagnóstico de arranque.

Si no lo captas en el primer arranque, no creo que aparezca en ninguna otra parte del portal. Solo hay una opción viable y segura de la que pueda pensar para recuperar la huella dactilar de una máquina virtual ya desplegada.

  1. Crea una nueva máquina virtual
  2. Adjunte el VHD de la máquina virtual para la que necesita la huella digital.
  3. Verifique su conexión a la nueva máquina virtual utilizando la huella digital en los diagnósticos de arranque.
  4. Compruebe la huella digital del archivo /etc/ssh/ssh_host_rsa_key.pub generado en el otro disco.

    ssh-keygen -lf /{path}/ssh_host_rsa_key.pub

Es posible que necesite agregar el -E md5 si necesita el hash MD5 codificado hexadecimal.

Potencia Shell

Para obtener los datos de diagnóstico de arranque a través de PowerShell:

Get-AzureRmVMBootDiagnosticsData -ResourceGroupName ExampleGroup -Name TestLab -Linux

Conectando con Masilla

Azure calcula las huellas digitales de la clave del host como una cadena codificada en Base64 del hash SHA-256 de la clave pública. Cuando intenta conectarse utilizando Putty , presenta la huella digital como una cadena codificada hexadecimal del hash MD5 de la clave pública.

Afortunadamente, Azure también enumera la clave pública completa en el registro de diagnóstico de arranque, donde dice BEGIN SSH HOST KEY KEYS en la segunda imagen . Con eso, podemos calcular manualmente la huella dactilar presentada por Putty.

DO#

static string ComputeMD5FingerprintFromBase64(string encoded) { // Convert Base64 string to byte array. byte[] pub = Convert.FromBase64String(encoded); // Compute MD5 hash. HashAlgorithm md5 = MD5.Create(); byte[] hash = md5.ComputeHash(pub); return BitConverter.ToString(hash).Replace(''-'', '':''); }