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.
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.
- Crea una nueva máquina virtual
- Adjunte el VHD de la máquina virtual para la que necesita la huella digital.
- Verifique su conexión a la nueva máquina virtual utilizando la huella digital en los diagnósticos de arranque.
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(''-'', '':'');
}
En su documento de ayuda, hay una página que habla sobre cómo restablecer la contraseña o la clave ssh:
https://docs.microsoft.com/en-us/azure/virtual-machines/linux/troubleshoot-ssh-connection