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:*:”中的“*”替换为“1AsKVw9p8$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',保存退出。

posted @   落雷  阅读(591)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示