如何使用ssh在名称空间中连接vm?

时间:2019-04-25 07:48:26

标签: cloud openstack

我想做什么: 使用python脚本在openstack环境中登录虚拟机

我到目前为止所做的:

  1. 我使用了CLI:$last_permission = file_get_contents("permission.txt"); if(!$last_permission){ $permission = fileperms("file_to_trace.txt"); }else{ if($permission != fileperms("file_to_trace.txt"){ mail("user@user.com", "contents"); } } file_put_contents("file_to_trace.txt", $permission); 创建openstack密钥对,并使用openstack keypair create abc > /root/keydir/abc更改了 权限

  2. 然后我从仪表板创建一个虚拟机,并使用我刚刚创建的密钥

  3. 我设置了虚拟机并等待它进入正确的状态

  4. 最后,我在控制器节点中使用以下命令:

chmod 600 abc
  1. 当我在python中运行时,它显示了我:ip netns exec qdhcp-c8db7805-c5e8-aaaa-xxxx-xxxxx ssh -i /root/keydir/abc root@192.168.111.104(vm's ip) "ping 127.0.0.1 -c 10 "

  2. 我直接在Linux中运行命令,提示我输入密码,这不是我想要的结果

为什么密钥对不起作用?

1 个答案:

答案 0 :(得分:2)

您应该使用管理员帐户(而不是“ root”)。帐户名称取决于在Linux映像上如何配置“ cloud-init”,但是通常是:

  • 用于Ubuntu的“ ubuntu”
  • “ Debian”代表Debian
  • 用于RHEL,Fedora,CentOS等的“ ec2-user”
  • 和其他人。

默认情况下,“ sshd”配置不允许(不应!)允许SSH通过网络登录“ root”帐户。