怎么初始化管理Ubuntu中的云服务器
如今,云服务器在网络服务中已经变得非常常见,与传统的机房相比,云服务器具有快速升级、降级硬件配合的优势,可以根据业务开展情况随时对服务器进行调整,既不会浪费性能,也不至于性能不足。对个人来说,拥有一台自己的云服务器,只需要很简单的操作,就可以搭建属于自己的网络服务平台,这在很多方面都是很有益的。
在国内来说,大型网络企业在自己使用大量云服务器的同时,也都纷纷提供云服务器功能,比较著名的有阿里云,腾讯云,亚马逊,微软Azure,以及百度云,京东云,华为云等等。
云服务器的购买方式在上述各家网站上都有详细的描述,而对于学生与创业企业来说,各家云服务器提供商也都有不同程度的优惠。一般而言,最低的云服务器配置对于新手来说性能已经足够了。
云服务器系统配置一般为Windows Server或者Linux发行版,考虑到服务器系统的流行性,对新手最友好的Linux发行版Ubuntu是最佳选择(当然喜欢CentOS的也大有人在)。
# SSH登陆
购买云服务器后,运营商都会提供登陆的公网IP地址以及登陆密码。Linux云服务器默认都会打开22端口供SSH登陆。如果操作系统是Windows,需要下载XSHELL或者Putty这样的SSH登陆工具,在Linux下则可以直接通过命令行进行SSH登陆。
当然,Windows系统也可以通过安装Cygwin以运行Linux环境,这对熟悉Linux操作很有帮助,而在Windows10的情况下,也可以安装Ubuntu或者SUSE这样的Linux发行版。
```shell
ssh root@(ip地址)
# 创建用户
通过以下命令创建用户,比如要创建用户名demo
```shell
add user demo
```
按系统提示输入密码即可,输入强密码会提高系统安全性,一般要求包含大小写,数字以及特殊字符且长度不小于8位。
# 设置root权限
创建用户之后需要给用户设置su即superuser(超级用户)权限,因为很多操作必须要通过su权限进行,而如果反复切换到root用户下则违背了我们提高安全性的初衷。因此,在root角色下为新用户设置sudo权限。
```shell
usermode -aG sudo demo
```
这个命令实际上是把demo用户添加到sudo组中,也因此demo会拥有sudo权限。
# 添加公钥登陆
在远程服务器管理的时候,最好通过密钥而非密码的方式进行登陆,这样可以最大程度上降低密码被破解的风险。密钥的方式涉及密码学知识,一般来说采用密钥对的时候,系统生成一对密钥,一个为公钥,一个为似钥,公钥可以放在任意地方,公开在网站上也可以,但是私钥必须妥善保管,因为只要拿私钥就可以与公钥配对。我一个简单的理解是,公钥其实相当于锁而私钥相当于钥匙。你可以把锁挂在任何地方,但是钥匙必须自己保管好才能拿来开锁。
要添加密钥登陆,首先要生成一对密钥。(在本地电脑上,绝对不能在远程计算机上生成)
```shell
ssh-keygen
```
这个命令可以生成一对密钥,按照命令提示即可。在生成过程中也可以输入密码再保护密钥,这样更安全。
生成的密钥对一般在/home/demo/.ssh/目录下,如果生成的是rsa密钥,则公钥名称为 id_rsa.pub,私钥为id_rsa。在windows下目录会不一样(其实我也不知道放在哪有用,有一次放在/user/的个人目录下面好像可以了。如果有多个云服务器,也没有必要为每个服务器生成不同的密钥对,有一对基本上就够用了。
# 上传公钥
上传公钥有两种办法
## 使用专用命令
使用下面的命令可以一步到位完成上传密钥并添加到远程计算机的.ssh/authorized_keys文件里。
```shell
ssh-copy-id demo@(ip地址)
```
**注意。.ssh是隐藏文件夹,在Linux下是通过给文件或者文件夹名前面加.来表示隐藏文件的,可以通过ls -a参数查看**
## 手动完成
手工完成上传公钥的命令可以弄明白ssh-copy-id都干了啥。
```shell
cat ~/.ssh/id_rsa.pub
```
这个命令把公钥输出在终端里,也可以通过编辑器打开文件。把内容复制下来。然后通过终端ssh登陆到远程服务器上(通过demo)
```shell
su -demo
mkdir ~/.ssh
chmod 700 ~/.ssh
nano(vim) ~/.ssh/authorized_keys
```
以上命令依次赋予demo sudo权限,建立.ssh目录并修改权限,新建一个authorized_keys的文件(可以用熟悉的编辑器,nano,vim都可以)。
把之前复制的公钥内容粘贴到这个新文件里并保存。
```shell
chmod 600 ~/.ssh/authorized_keys
```
修改文件权限以提高安全性。
# 禁用密码登陆
完成密钥设置后,最好禁止通过密码登陆以提高服务器安全性(当然,这要建立在确保密钥能登陆上去的情况下,要不然就恐怕只能重置服务器了,因此自己再也登陆不上去了)
```shell
sudo nano /etc/ssh/sshd_config
```
打开ssh配置文件,找到下列内容并修改为下列值
```shell
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
```
退出或者重启以下远程服务器,再通过ssh测试一下登陆。
# 设置防火墙。
可以通过ufw设置系统防火墙。
```shell
sudo ufw app list
```
查看通过或者禁止的程序列表
```shell
sudo ufw allow OpenSSH
```
允许SSH登陆
```shell
sudo ufw enable
sudo ufw status
```
启用防火墙并检查状态。
初步的服务器配置工作基本上到这里就完成了。