管理 Linux 云主机最简便的方法是使用密钥对登录,既安全,又省事。本文记录在 Mac OS 下使用密钥对登录 Linux 云主机的设置过程,同样也适用于多数 Linux 客户端。
通过 ECS 控制台修改设置并获取云主机 IP 地址
购买阿里云主机后,点击 “管理控制台” » “我的资源” » “弹性计算” » “云服务器 ECS” 链接进入 ECS 控制台,通过 ECS 控制台可以执行更换操作系统、修改计算机名、重置密码等管理操作,并获取管理云主机所需的 IP 地址等信息。
更换操作系统
转到实例列表,找到需要管理的 ECS 实例,在最后一列,点击“更多”可以出现操作选择菜单:
图1. 操作选择菜单
通过“磁盘和镜像”下的“更换系统盘”可以更换操作系统。
注意更换操作系统的操作界面只有在 ECS 处于关闭状态才可进入。如果实例处于“运行中”的状态,可通过“实例状态”下的“停止”菜单关闭云主机。
修改计算机名(HostName)
默认的实例名称、HostName 和实例 ID 一致,但您肯定不喜欢在系统中看到一个很长但无意义的 ID。
通过“实例设置”下的“修改信息”功能可设置实例名称、HostName和实例描述。
密码
在完成使用密钥对登录的设置工作前,需要通过密码操控云主机。
如果不记得 root 密码,可通过“密码/密钥”下的“重置密码”先设置一个密码。root 密码可以在成功使用密钥对登录后删除。
获取云主机IP地址
从实例列表中可找到并复制需管理 ECS 实例的公网 IP。在本文的例子中为“39.105.106.107”。
检查安全组设置
对于新购买的 ECS, 安全组初始状态下允许接收来自外来 IP 对 TCP 22 端口(也就是 ssh 服务的默认监听端口)的访问,但如果安全组设置被修改,将可能造成后续的操作不能进行。
点击 ECS 实例后,在 “本实例安全组” 下可查看入方向的规则,在 “安全组列表” 中点击 “配置规则”可添加/删除/修改安全组规则。
在客户端生成密钥对并将公钥复制到 ECS
生成RSA密钥对
如果没有可用的密钥对,可以重新生成一对。
ssh-keygen
在此过程中会提示输入文件名,如果不使用默认的文件名,需要做好记录,在后面的配置中还会用到。
将密钥对中的公钥复制到 ECS
接下来将密钥对中的公钥复制到 ECS,记住是公钥。私钥一般保留在自己的计算机内就好,不用通过网络或移动介质传输。如果需要从新的客户端管理云主机,再生成一对密钥,将公钥复制到云主机即可。这种方式下,万一有某个客户端的私钥丢失或泄漏,只需要在云主机中删除对应的公钥,不影响其它客户端。
ssh-copy-id -i ~/.ssh/id_rsa.pub root@39.105.106.107
这个过程会提示输入密码,也就是在 ECS 控制台中设置的密码。
上面例子中的 ~/.ssh/id_rsa.pub
文件为刚刚生成的密钥对中的公钥,39.105.106.107 为 ECS 的公网 IP。
使用密钥对登录云主机
ssh root@39.105.106.107
如果不想每次都去查看 ECS 的公网 IP,或者没有使用默认的密钥文件名(~/.ssh/id_rsa
和 ~/.ssh/id_rsa.pub
),那么还需要下面一步。
修改 config 文件
修改文件 ~/.ssh/config
, 增加以下 5 行内容:
host aliyun1
user root
hostname 39.105.106.107
port 22
identityfile ~/.ssh/rsa_for_aliyun_ecs
新增加的 5 行内容分别为:
- host
- 云主机 Linux 系统的用户名
- ECS 的公网 IP
- ssh 端口号
- 私钥文件在本机的地址
配置完成后登录就更简单了:
ssh aliyun1
其它操作环境
以上设置是在 Mac OS 下通过密钥对登录 Linux 云主机,也适用于多数 Linux 客户端。
如果您的使用环境不同,或者需要更详细的讲解,可浏览 ECS 控制台操作指南中的相关文档: