上次蹭到一张船票,登上了 Amazon Web Services (AWS) 这艘巨轮,今天要在船上的免费餐厅吃一顿免费晚餐 —— 整一台 AWS 免费套餐中的 EC2 服务器体验一下。
进入 EC2 控制台,点击“启动实例”,进入 AMI 系统镜像选择页面,勾选“仅免费套餐”,从中选择一台免费的服务器,这里我们选择 Ubuntu 20.04
免费套餐中的实例配置是1核1G
点击“审核和启动”,进入“核查实例启动”页面,点击“启动”,出现“选择现有密钥对或创建新密钥对”对话框
选择创建新密钥对,输入密钥对名称,点击“下载密钥对”,会下载一个 cnblogs.pem 文件(ssh私钥文件)。
点击“启动实例”,遭遇启动失败
这是由于使用我们当前所在的地域“美国西部 (加利福尼亚北部) us-west-1”的云资源需要一个额外的验证过程。
换一个地域试试,换到“美国东部 (俄亥俄州) us-east-2”,这个地域不需要验证,启动实例成功。
与此同时,收到了标题为"Your Request For Accessing AWS Resources Has Been Validated"的邮件,us-west-1 地域的验证也通过了。
You recently requested an AWS Service that required additional validation. Your request has now been validated for AWS US West (N. California) region(s).
在验证的过程中又从信用卡扣了1美元(和注册时一样会返还)。
进入EC2控制台查看刚刚启动的实例信息
拿到服务器实例的公网IP地址,ssh登录试试(默认用户名是ubuntu)
$ ssh ubuntu@3.139.91.143 The authenticity of host \'3.139.91.143 (3.139.91.143)\' can\'t be established. ECDSA key fingerprint is SHA256:67G0raEM3ml9PqREBefoq2108ZHBwywWXpWiKiuZ4E8. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added \'3.139.91.143\' (ECDSA) to the list of known hosts. root@3.139.91.143: Permission denied (publickey).
ssh密钥验证失败,需要用之前创建并下载的 cnblogs.pem 密钥文件登录
$ ssh -i cnblogs-us-east-2.pem ubuntu@3.139.91.143 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for \'cnblogs-us-west-1.pem\' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key "cnblogs-us-west-1.pem": bad permissions root@3.139.91.143: Permission denied (publickey).
又失败了,这次是密钥文件的权限问题,644权限(-rw-r--r--@)太开放了,不安全,用 chmode 命令将权限修改为400(-r--------)
chmod 400 cnblogs-us-east-2.pem
修改权限后 ssh 登录成功了
$ ssh -i cnblogs-us-east-2.pem ubuntu@3.139.91.143 Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-1024-aws x86_64) ...
如果不想每次 ssh 都输入密码文件,可以使用自己电脑上的默认的密钥。
点击 EC2 控制台左侧菜单中的“密钥对”,进入密钥对控制台,点击右侧“操作”中的“导入密钥对”,导入自己电脑上 ~/.ssh/id_rsa.pub 文件,导入成功后,需求启动新的 EC2 实例才可以使用这个密钥。
在启动实例操作过程中出现“选择现有密钥对或创建新密钥对”对话框时选择刚刚导入的密钥,就可以不需要指定密钥文件直接 ssh 登录了。
$ ssh ubuntu@18.223.33.137 The authenticity of host \'18.223.33.137 (18.223.33.137)\' can\'t be established. ECDSA key fingerprint is SHA256:LIRxVm471JB9gLRuYJx+S0pueiSaxfBr+neVKuErF5U. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added \'18.223.33.137\' (ECDSA) to the list of known hosts. Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-1024-aws x86_64)
登录成功后用 curl 命令请求园子首页体验一下
$ curl -s https://www.cnblogs.com | grep "Powered by" <div class="poweredby">Powered by .NET 5.0.0-rc.2.20475.5 on Kubernetes</div>
AWS 免费云服务器就这样整好了。