• OpenStack官方镜像无法ssh登陆


    0x00 序

      当前主流的Linux系统都有提供可以在OpenStack中直接使用cloud镜像,但当使用从官方网站下载的镜像创建云主机时,你会发现Linux下经常使用的ssh竟然无法登陆新创建好的云主机。

      为什么会出现这种情况呢?

      因为官方提供的镜像,默认的是“root+密钥对”的方式登陆,而不是使用“root+密码”的方式登陆。

      那么要想使用“root+密码”的方式登陆应该怎么做?

      要启用“root+密码”的方式登陆,有两种方式:一种是在主机创建时指定,详情请看这里;另一种是使用“guestfish”工具修改镜像文件。本文主要介绍的就是通过“guestfish”的方式启用“root+密码”的方式。

    0x01 下载镜像

      主流的Linux系统都提供有供OpenStack使用的cloud镜像:

      CentOS:http://cloud.centos.org/centos/

      Ubuntu:http://cloud-images.ubuntu.com/

    0x02 安装guestfish(以下操作需要使用root权限)

      Ubuntu: apt-get install libguestfs-tools  

      CentOS: yum install guestfish

    0x03 启用“root+密码”的登陆方式

      以Ubuntu系统为例:

    root:~# guestfish --rw -a ubuntu.img
    
    root:~# ><fs> run
    
    root:~# ><fs> list-filesystem
        /dev/sda1 :ext4
    root:~# ><fs> mount /dev/sda1 /

      另起一个终端,执行以下命令:

    root:~# openssl passwd -1 ubuntu
    $1$AsKVw9p8$BMxCNkExSBbtrN2IaU3/W.

      

    root:~# ><fs> vi /etc/shadow

      将第一行的“root:*:”中的“*”替换为“$1$AsKVw9p8$BMxCNkExSBbtrN2IaU3/W.”,保存退出。

    root:~# ><fs> vi /etc/ssh/sshd_config

      将“PermitRootLogin”行改为“PermitRootLogin yes”,“PasswordAuthentication no”改为“PasswordAuthentication yes”,保存退出。

    root:~# ><fs> quit

      退出guestfish。

      之后再使用修改后的镜像创建云主机就可以使用“ssh root@ip + ubuntu”登陆了。

    0x04 补充

      如果不想使用root用户登陆,可以使用CentOS/Ubuntu官方提供的镜像提供的普通用户centos/ubuntu用户登陆,不过需要手动配置下/etc/cloud/cloud.cfg文件,修改方法同上:

    root:~# ><fs> vi /etc/cloud/cloud.cfg

      找到default_user字段,将lock_passwd:True(默认禁用密码登陆)修改为:lock_passwd:false,添加:plain_text_passwd:'ubuntu',保存退出。

  • 相关阅读:
    oracleDBA-D4
    oracleDBA-D3
    oracleDBA-D2
    大数据架构学习记录
    UBUNTU 安装最新版 nodejs
    datax 单条记录超过大小限制,当前限制为:67108864
    将anaconda中已存在的虚拟环境增加到jupyterlab
    jupyter 启动python3 内核 总是出现错误 ImportError: cannot import name 'create_prompt_application'
    CDH 本地hadoop支持读写 AWS S3a
    hadoop 集群集成jupyterhub 出现的问题
  • 原文地址:https://www.cnblogs.com/lianshuiwuyi/p/10702678.html
Copyright © 2020-2023  润新知