我想要做的:使用 python 脚本登录 openstack
环境中的虚拟机
我目前所做的:我使用 CLI:openstack keypair create abc > /root/keydir/abc
创建 openstack 密钥对并使用chmod 600 abc to change the permission
然后我从仪表板创建一个虚拟机并使用我刚刚创建的密钥
我设置了虚拟机并等待它进入正确状态最后我在控制器节点使用此命令:ip netns exec qdhcp-c8db7805-c5e8-aaaa-xxxx-xxxxx ssh -i /root/keydir/abc[电子邮件保护](虚拟机的 ip)“ping 127.0.0.1 -c 10”
当我在 python 中运行这个命令时,它显示:Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
我直接在 Linux 中运行该命令,它提示我输入密码,但这不是我想要的结果
为什么密钥对不起作用?
答案1
这是我经常遇到的问题。在服务器端生成密钥时,您必须将 RSA 私钥/公钥导出到您想要连接的机器。公钥(也在授权密钥中)是您唯一需要的。
我使用 PuTTy 来执行此操作,因为您可以从记事本中生成带有 RSA 密钥的 .ppk 文件。您只需使用密钥 ------BEGIN RSA KEY------- 来 cat 该文件并将其放入记事本中,然后使用 PuTTy 密钥生成器将其制作为 .ppk。
以下是一份出色的指南:https://support.rackspace.com/how-to/log-into-a-linux-server-with-an-ssh-private-key-on-windows/