我跟着如何捕获运行 Linux 的虚拟机映像在 Ubuntu 12.04 LTS 上安装我想要的软件包后,捕获虚拟机映像。我按照以下步骤关闭机器waagent -deprovision
并捕获映像。
当我创建第一个虚拟机(后来被我捕获)时,我指定了一个证书文件key1.pem
。
当我从“我的图像”映像创建新的虚拟机时,我指定了一个证书文件key2.pem
。
当我尝试连接到新 VM 时,我收到了消息Permission denied (public key).
。为了进行连接,我使用了。ssh -i ssh/key2 -p myport [email protected]
出了什么问题?是否需要采取特殊步骤来使用与模板图像中不同的密钥?这是一个错误吗?
答案1
乍一看,您似乎试图将 .pem 文件部署为 SSH 密钥对的公钥,~azureuser/.ssh/authorized_keys
以便您可以使用基于密钥的身份验证而不是基于密码的 ssh 登录,是这样吗?
我通常将 PEM 文件与 SSL 证书关联起来,你应该注意到,正如手册页中所说,SSH 证书的格式与 SSL 中使用的 X.509 证书不同,而且格式要简单得多。因此,使用 SSL 证书而不是 SSH 密钥/证书将会失败。
通常会创建一个私用的 SSH 密钥对,ssh-keygen -b 2048 -t rsa -f .ssh/mykey
它将创建 2048 位 RSA 私钥文件~/.ssh/mykey
和相应的公钥~/.ssh/mykey.pub
。该公钥需要部署到~azureuser/.ssh/authorized_keys
确保在您的客户端和服务器上,~/.ssh
目录只有所有者可以访问,chmod 0700
并且所有密钥文件只有其所有者可以读取,即 chmod 0600
。
可以使用 从客户端进一步调试 ssh,或者使用 进行更详细的调试。ssh -v -i ssh/mykey -p myport [email protected]
-vv