zoukankan      html  css  js  c++  java
  • Openstack Queen版本之guestfish修改centos7云镜像解决ssh无法连接VM实例

    原因

    用VirtualBox 以及Queen版本搭建 openstack, 创建了实例,用ssh怎么搞都不能够免密登陆进入创建的虚拟机,虽然可以ping通,所以打算尝试一下直接修改镜像ssh密码。

    1.安装guestfish

    apt-get install libguestfs-tools -y
    

    2.打开镜像(前面一篇博客有提到下载和转换)

    guestfish --rw -a CentOS-7-x86_64-GenericCloud-1907.qcow2
    

    3.执行修改

    ><fs> run
    ><fs> list-filesystems
    ><fs> mount /dev/sda1 /
    ><fs> vi /etc/cloud/cloud.cfg
    ><fs> vi /etc/ssh/sshd_config 
    ><fs> vi /etc/shadow
    ><fs> quit 
    

    修改1

    /etc/cloud/cloud.cfg我修改了如下:

    // 4,5行
    disable_root:0   //允许root登陆
    ssh_pwauth: 1    //ssh开启密码登陆
    // 57行
    lockpasswd: false
    plain_text_passwd: "123456"  //添加
    

    下图是原来的情况:

    修改2

    /etc/ssh/sshd_config 修改了如下,即允许管理员登陆

    修改3 /etc/shadow

    需要先打开新的shell,然后输入

    [root@controller ~]#  openssl passwd -1 123456
    $1$.dtYmdL8$9yGo/gKaGWmJHwoIgJDVM/
    [root@controller ~]# 
    
    
    

    将root默认的随机密码替换成生成的加密密码,如下图所示

    问题1

    ><fs> run
    libvirt: XML-RPC 错误 : 将插槽连接到 '/var/run/libvirt/libvirt-sock' 失败: 没有那个文件或目录
    libguestfs: error: could not connect to libvirt (URI = qemu:///system): 将插槽连接到 '/var/run/libvirt/libvirt-sock' 失败: 没有那个文件或目录 [code=38 int1=2]
    
    

    解决:因为libvirtd 没有启动,启动即可。

    service libvirtd start
    

    问题2

    ><fs> run
    ◓ 25% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒═════════════════════════════════════════════════════════⟧ --:--
    libguestfs: error: could not create appliance through libvirt.
    
    Try running qemu directly without libvirt using this environment variable:
    export LIBGUESTFS_BACKEND=direct
    
    Original error from libvirt: Cannot access storage file '/root/CentOS-7-x86_64-GenericCloud-1907.qcow2' (as uid:107, gid:107): 权限不够 [code=38 int1=13]
    ><fs> quit
    
    

    解决:修改/etc/libvirt/qemu.conf,把user 和group的注释#去掉,

    vim /etc/libvirt/qemu.conf
    
    #       user = "100"    # A user named "100" or a user with uid=100
    #
    user = "root"
    
    # The group for QEMU processes run by the system instance. It can be
    # specified in a similar way to user.
    group = "root"
    
    
    

    重启服务

    systemctl restart libvirtd
    

    修改

    [root@controller ~]#  openssl passwd -1 123456
    $1$.dtYmdL8$9yGo/gKaGWmJHwoIgJDVM/
    

    结果

    用我们修改过的镜像,重新上传镜像,最终可以登陆到我们云平台建立的虚拟机,不过建立连接的过程会很缓慢,大概1-3分钟,等到你觉得不可能连上。。。

    xshell centos登陆

    putty centos登陆

    root 登陆

    感谢以下博客的博主,非常好的学习参考。
    利用guestfish工具修改openstack云镜像的root密码,默认用户centos的密码
    上传镜像
    修改openstack镜像--支持root密码登陆
    Ubuntu16手动安装OpenStack——修改镜像

  • 相关阅读:
    3 * 0.1 == 0.3 将会返回什么?true 还是 false?
    Java中存储金额用什么数据类型?
    oracle数据库中索引失效的几种情况
    MyBatis如何防止SQL注入
    Windows10连接到内网(局域网)段
    Linux上安装Tomcat并启动时报Cannot find /usr/local/tomcat/tomcat_8080/bin/setclasspath.sh
    Linux上安装Mysql
    Linux上安装JDK
    FileZilla的使用和注意事项
    Failure to find parent:pom:2.2.6 in http://maven.aliyun was cached in the local repository...
  • 原文地址:https://www.cnblogs.com/Pan-xi-yi/p/12120876.html
Copyright © 2011-2022 走看看