解决方法
RSA,DSA,ECDSA和ED25519密钥在首次引导时生成,并且在引导诊断日志中可用.
如果你在第一次启动时没有抓到它,我不认为它被列在门户网站的其他地方.只有一个可行的,安全的选项,我可以想到恢复已经部署的虚拟机的指纹.
>创建一个新的VM.
>连接需要指纹的虚拟机的VHD.
>使用引导诊断程序中的指纹验证与新VM的连接.
> Check the fingerprint在另一个磁盘上生成/etc/ssh/ssh_host_rsa_key.pub文件.
ssh-keygen -lf /{path}/ssh_host_rsa_key.pub
如果需要十六进制编码的MD5哈希,则可能需要添加-E md5开关.
电源外壳
通过PowerShell获取引导诊断数据:
Get-AzureRmVMBootDiagnosticsData -ResourceGroupName ExampleGroup -Name TestLab -Linux
与腻子连接
Azure将主机密钥指纹计算为公钥SHA-256散列的Base64编码字符串.当您尝试使用Putty连接时,它将指纹呈现为公钥MD5散列的十六进制编码字符串.
幸运的是,Azure还在启动诊断日志中列出了完整的公钥,其中第二个image中提到了BEGIN SSH HOST KEY KEYS.通过这一点,我们可以手动计算Putty提供的指纹.
C#
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('-',':'); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。