Linux   发布时间:2022-05-08  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何获取使用PowerShell创建的新Azure Linux虚拟机的ssh主机密钥?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我使用Power SHell创建Azure Linux VM,那么如何获取其新的ssh主机密钥,以便我可以将其安装在本地的ssh / putty中?该解决方案最好也是PowerSHell代码.

解决方法

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('-',':');
}@H_301_35@

大佬总结

以上是大佬教程为你收集整理的如何获取使用PowerShell创建的新Azure Linux虚拟机的ssh主机密钥?全部内容,希望文章能够帮你解决如何获取使用PowerShell创建的新Azure Linux虚拟机的ssh主机密钥?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: