已捕获 Azure Linux VM,根据映像构建。新 VM 的密码或密钥不同:权限被拒绝?

已捕获 Azure Linux VM,根据映像构建。新 VM 的密码或密钥不同:权限被拒绝?

我跟着如何捕获运行 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

相关内容