8.5. 创建具有 SSH 访问权限的实例
您可以在创建实例时指定密钥对来提供实例的 SSH 访问。密钥对是 SSH 或 x509 凭据,在实例启动时注入到实例中。每个项目应至少有一个密钥对。密钥对属于单个用户,而不是项目。
您不能在创建实例后将密钥对与实例关联。
您可以在实例创建过程中直接将安全组应用到实例,或应用到正在运行的实例上的端口。
您无法在实例创建过程中将基于角色的访问控制 (RBAC) 共享安全组直接应用到实例。要将 RBAC 共享安全组应用到实例,您必须首先创建端口,将共享安全组应用到该端口,然后将该端口分配给实例。请参阅 创建和管理实例 中的 向端口添加安全组。
先决条件
- 可以使用密钥对 SSH 到您的实例。如需更多信息,请参阅生成新的 SSH 密钥对。
- 您计划在 上创建实例的网络必须是外部网络,或者连接到将外部网络配置为网关的路由器的项目网络。如需更多信息,请参阅配置 Red Hat OpenStack Platform 网络指南中的 添加路由器。
- 实例连接的外部网络必须具有子网来提供浮动 IP 地址。
- 安全组允许 SSH 访问实例。如需更多信息,请参阅使用安全组和密钥对保护实例访问。
-
实例所基于的镜像包含
cloud-init
软件包,用于将 SSH 公钥注入到实例中。 - 一个浮动 IP 地址可用于分配给您的实例。有关更多信息,请参阅将浮动 IP 地址分配给实例。
-
管理员已为您创建一个项目,并为您提供了一个
clouds.yaml
文件来访问云。 -
已安装
python-openstackclient
软件包。
流程
检索具有实例所需硬件配置文件的类别的名称或 ID:
openstack flavor list
$ openstack flavor list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意选择足够大小的类别,以便镜像成功引导,否则实例将无法启动。
检索具有实例所需软件配置集的镜像名称或 ID:
openstack image list
$ openstack image list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您所需的镜像不可用,您可以下载或创建新镜像。有关创建或下载云镜像的详情,请参考 执行存储操作 中的 创建 RHEL KVM 镜像。
检索您要连接实例的网络的名称或 ID:
openstack network list
$ openstack network list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检索您要用来远程访问实例的密钥对名称:
openstack keypair list
$ openstack keypair list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建具有 SSH 访问的实例:
openstack server create --flavor <flavor> \ --image <image> --network <network> \ [--security-group <secgroup>] \ --key-name <keypair> --wait myInstancewithSSH
$ openstack server create --flavor <flavor> \ --image <image> --network <network> \ [--security-group <secgroup>] \ --key-name <keypair> --wait myInstancewithSSH
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<flavor
> 替换为在第 1 步中检索的类别的名称或 ID。 -
将
<image
> 替换为在第 2 步中检索的镜像的名称或 ID。 -
将
<network
> 替换为在第 3 步中检索的网络的名称或 ID。您可以根据需要多次使用--network
选项将实例连接到多个网络。 -
可选:
默认安全组
应用到没有指定替代安全组的实例。您可以在实例创建过程中直接将替代安全组应用到实例,或应用到正在运行的实例上的端口。在创建实例时,使用--security-group
选项指定备选安全组。有关向正在运行的实例上的端口添加安全组的详情,请参考 向端口 添加安全组。 -
将
<keypair
> 替换为在第 4 步中检索的密钥对的名称或 ID。
-
将
为实例分配一个浮动 IP 地址:
openstack server add floating ip myInstancewithSSH <floating_ip>
$ openstack server add floating ip myInstancewithSSH <floating_ip>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<floating_ip
> 替换为您要分配给实例的浮动 IP 地址。使用自动创建的
cloud-user
帐户来验证您可以使用 SSH 登录您的实例:ssh -i ~/.ssh/<keypair>.pem cloud-user@<floatingIP>
$ ssh -i ~/.ssh/<keypair>.pem cloud-user@<floatingIP> [cloud-user@demo-server1 ~]$
Copy to Clipboard Copied! Toggle word wrap Toggle overflow