我是一名大三计科专业学生,因为刚开学任务相对少,加上课程和项目可能有服务器应用需求,于是先自己探索一下。前几年就听说过阿里云有学生优惠,最近又进一步搜索找到了“飞天加速计划·高校学生在家实践”活动。
# ECS入门使用/学习攻略
## 服务器选择
我最初了解到的是开发者成长计划,该计划的补贴目前支持轻量应用服务器、云服务器ECS等多种类型服务器和MySql云数据库等。其中**轻量应用服务器**可以帮助我们快速进入开发状态,比如使用阿里云提供的LAMP镜像环境建站等。而**云服务器ECS**则拥有高可控性,我们拥有超级用户权限,能够自行进行环境部署和软件安装等。基于这种高可控性,ECS云服务器很适合用于学习探索目的的使用。
## 入门探索/相应资料
鉴于我是第一次使用云服务器,对其中很多技术都所知甚少,我目前的学习方法是尝试实现一些对服务器的基本应用,在过程中学习技术:
1. 使用XShell和XFTP连接服务器,方便命令和文件操作等。
2. [7天学会ECS](https://developer.aliyun.com/topic/download?spm=a2c6h.24072961.J_9462890510.4.7ddd7d97NEgTFA&id=40)
阿里云开发者社区中的应用教程,其中包括使用云服务器搭建个人简历网站、用WebIDE部署远程开发环境等。
3. [使用VSCode进行远程开发](https://code.visualstudio.com/docs/remote/ssh)
VScode的官方文档,详细介绍了如何使用VSCode进行远程开发,包括环境配置,用SSH进行使用密码的连接,用SSH进行密钥认证的连接等。由于初次使用,配置SSH密钥认证链接还是花费了一定时间,所以也顺便在此总结一下自己使用windows 10为客户端操作系统连接linux作为远程主机的过程:
>1. 检查本地和服务端系统需求:确保本地安装OpenSSH兼容的SSH客户端;服务器安装SSH服务端。我本次使用的阿里云提供的ubuntu20.04镜像已经安装了相应服务端。
>2. 确保在VScode上安装了Remote Development extension pack远程开发拓展包
>3. 本地使用powershell命令生成密钥:
> `ssh-keygen -t rsa -b 4096` 该命令指定加密算法rsa和密钥长度4096。默认情况下私钥位置为`C:\Users\用户名\.ssh\id_rsa`,对应公钥则为`id_rsa.pub`。
>4. 授权连接:
> 在本地powershell输入如下命令,更改your-user-name-on-host@hostname为服务端的用户名和主机名,如root@服务器公网ip。
$USER_AT_HOST="your-user-name-on-host@hostname"
$PUBKEYPATH="$HOME\.ssh\id_rsa.pub"
Get-Content "$PUBKEYPATH" | Out-String | ssh $USER_AT_HOST "powershell `"New-Item -Force -ItemType Directory -Path `"`$HOME\.ssh`"; Add-Content -Force -Path `"`$HOME\.ssh\authorized_keys`" `""
如果服务器设置了密码,此时会要求输入(出于安全考虑密码并不会显示,但是实际上是输入了)。之后就可以不需要用密码连接了。同理XShell,XFTP也可以采用这一密钥用相同的方式连接。
>PS:关于这一部分,在网络上搜索通常找到的多是用linux连接服务端的教程,其中的第四步采用的是ssh-copy-id命令,powershell上并没有。
## 展望
通过这段时间的使用,我对ECS云服务器有了一定的了解。之后也会继续探索ECS的应用。