走上云端:云服务器使用入门指南
一、设置用户组 & 用户
1、登录远程服务器
① 方法一:通过浏览器登录
- 如果购买的是阿里云服务器,可以在实例列表中找到目标服务器,在远程连接中选择 VNC 以打开管理终端。
- 打开管理终端后,记住初始密码并输入该密码。接着,输入账号
root和相应密码,以 root 用户身份登录远程服务器。最后,使用命令exit退出登录。

② 方法二:通过本地登录(检查是否安装 OpenSSH)
- 按下
Win + R键,输入powershell以打开 PowerShell。然后输入ssh root@你的公网ip,输入密码后即可以 root 用户身份登录远程服务器。

2、创建用户组和用户
- 使用命令
groupadd adminuser创建adminuser组。 - 接着,使用命令
useradd learn -g adminuser创建用户learn并将其添加至adminuser组。 - 最后,使用命令
passwd learn设置用户learn的密码,输入两遍密码后完成设置。 - 使用命令
exit退出登录,然后使用新创建的用户登录。

3、修改新用户的权限(以 root 用户操作)
- 输入命令
cd /etc切换到/etc目录,并使用ls命令查看该目录下的所有文件。接着,输入命令vim sudoers打开编辑sudoers文件。 - 在
sudoers文件中找到包含root的行,按i键进入编辑模式,在root的下一行添加learn ALL=(ALL) ALL。按Esc退出编辑模式。 - 按
Shift + ;即:,输入wq!并回车,强制保存并退出文件。

4、禁止 root 账号进行 SSH 远程登录
- 输入命令
cd /etc/ssh切换到/etc/ssh目录,并使用ls命令查看该目录下的所有文件。接着,输入命令vim sshd_config打开sshd_config文件。

- 在
sshd_config文件中找到#PermitRootLogin yes,按i键进入编辑模式,将其修改为PermitRootLogin no,并去掉#符号。按Esc退出编辑模式。

按
:,输入wq并回车以保存并退出文件。修改完配置文件后,使用命令
systemctl restart sshd.service重启 SSH 服务。然后输入exit退出登录。再次尝试使用 root 账号登录时,您会发现登录请求被拒绝。此时,您可以使用Ctrl + C键终止当前命令。

- 至此,我们成功禁止了 root 账号进行 SSH 远程登录,但可以通过刚创建的用户
learn进行登录操作。
二、设置远程登录证书
1、创建证书(公钥文件和私钥文件)
- 直接打开 PowerShell(无需登录 SSH),输入命令
ls。您会发现存在文件.ssh。如果没有.ssh文件,则需要通过命令mkdir .ssh创建该文件夹;如果存在,则可以忽略此操作。(Mac/Linux 用户,输入ls仅显示一般文件,需要输入ls -a才能显示隐藏文件。)

- 使用命令
cd .ssh进入.ssh目录,接着输入命令ssh-keygen -t rsa -C learn -f learnfile生成证书。对于后续的所有提示,直接回车跳过。最后,通过ls查看文件夹下的文件,您会发现多了learnfile(私钥)和learnfile.pub(公钥)两个文件。

2、将公钥文件(learnfile.pub)上传到服务器
- 仍保持在
.ssh路径下,执行命令scp learnfile.pub learn@你的公网ip:.,然后按照提示输入learn用户的密码,等待进度达到百分之百即表示上传完成。

3、登录服务器进行设置
首先使用
learn用户登录服务器,输入ls命令查看文件,您会发现刚才上传的learnfile.pub文件。接着使用ls -a查看所有文件,发现没有.ssh文件。通过命令
mkdir .ssh创建.ssh文件夹,再次查看所有文件,您会发现.ssh文件夹已创建。然后通过命令cd .ssh进入该文件夹,通过命令touch authorized_keys创建authorized_keys文件(文件名称一定不能打错,图中是错误的)。通过命令
cd ..返回到.ssh的父文件夹,执行命令cat learnfile.pub >> ~/.ssh/authorized_keys将learnfile.pub写入authorized_keys文件中。写完之后,可以通过命令rm learnfile.pub删除learnfile.pub(公钥文件)。

4、修改证书文件夹的权限
通过命令
ls -al查看文件的详细信息,会发现.ssh文件夹的访问权限为drwxr-xr-x,其中d表示这是个文件夹,剩下的 9 个字符可以分成三组rwx/r-x/r-x。第一组表示对于该文件夹的所有者(即learn)可读、可写、可执行;第二组表示对于adminuser用户组内的所有用户可读不可写可执行;第三组表示对于其他用户可读不可写可执行。我们的目标是修改
.ssh文件夹和authorized_keys文件的访问权限,仅允许文件所有者访问。执行命令
chmod 700 .ssh修改.ssh文件夹的访问权限。接着,使用命令cd .ssh进入.ssh文件路径,再通过命令ls -al查看文件的详细信息,执行命令chmod 600 authorized_keys修改authorized_keys文件的访问权限,最后退出服务器登录。

5、创建配置文件
退出登录后,首先可以通过命令
rm learnfile.pub删除learnfile.pub(公钥文件),然后创建配置文件config。Mac/Linux 用户可以直接通过命令
vim config创建并进入config文件,并在文件中写入以下内容:
Host learn
HostName 你的公网IP
Port 22
User learn
IdentityFile ~/.ssh/learnfile- Windows 用户可以在桌面新建文本文档
config.txt并写入以上内容。然后在 PowerShell 中,通过命令cd Desktop进入桌面路径,使用ls查看config.txt文件,执行命令mv config.txt ~/.ssh将文件移动到.ssh文件夹下。

- 然后通过
cd ..返回到父文件夹,再通过命令cd .ssh进入.ssh路径,会发现存在文件config.txt。接着通过命令mv config.txt config将config.txt文件重命名为config文件。

- 最后,您可以直接通过命令
ssh learn来登录远程服务器,而无需输入密码。

三、设置安全防火墙服务
1、更新 yum 功能
远程登录服务器,执行命令
yum update进行更新。但是,由于当前登录的是learn账户,可能会显示没有 root 权限。因此,我们需要执行命令sudo yum update进行更新。这里的sudo表示后面的命令将以超级管理员的身份执行。输入learn账户的密码后即可进行更新。执行过程中会提示是否继续更新,输入y即可继续。另外,我们也可以通过命令
sudo yum -y update进行更新,其中-y表示如果更新过程中需要输入y继续,系统会自动处理,无需手动输入。

2、安装插件并启动服务
learn用户在使用yum安装插件时需要添加sudo以超级管理员身份执行命令。执行命令sudo yum install -y cronie yum-cron安装cronie和yum-cron插件。cronie是一个基于 cron 的任务调度程序,允许用户在指定的时间或周期执行任务。它可以用来设置定期执行的系统维护任务,比如备份、清理临时文件等。yum-cron是一个与yum结合的插件,专门用于自动更新软件包。安装yum-cron后,可以配置系统自动检查和安装软件包更新,确保系统始终保持最新状态,减少安全风险和软件漏洞。

- 同样,使用
vim编辑配置文件时,也需要添加sudo。执行命令sudo vim /etc/yum/yum-cron.conf打开配置文件yum-cron.conf,将配置文件中的apply_updates = no改为apply_updates = yes,目的是开启自动更新功能。

- 执行命令
sudo systemctl start crond和sudo systemctl start yum-cron启动crond和yum-cron服务。

3、安装并启动防火墙服务
执行命令
sudo yum install -y firewalld安装防火墙。如果已经安装,则会显示已安装且是最新版本,无需任何处理。然后执行命令
sudo systemctl start firewalld.service启动防火墙服务,并通过命令sudo firewall-cmd --list-all来查看防火墙状态。(关于服务器的更多操作命令,可以查看我之前的文章:《CentOS7 使用 firewalld 打开关闭防火墙与端口》)

四、设置远程连接开放端口
1、修改 SSH 相关的配置文件
- 执行命令
sudo vim /etc/ssh/sshd_config打开配置文件sshd_config,找到#Port 22所在的一行,并修改为Port 12345(此处端口可以设置为1024-65535之间的任意端口),最后保存并退出。

- 执行命令
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/将防火墙中关于 SSH 的配置文件拷贝出来,然后执行sudo vim /etc/firewalld/services/ssh.xml打开配置文件ssh.xml,找到port="22"并修改为port="12345",最后保存并退出。

2、修改安全组中的配置规则
进入阿里云后台:
- 打开安全组选项;
- 打开配置规则并修改相应的配置规则;
- 点击添加安全组规则;
- 填写相应的端口范围;
- 授权对象填
0.0.0.0/0表示对所有人授权。


3、重启防火墙服务和 sshd 服务
- 重启防火墙和 SSH 服务会导致与本地断开连接,因此建议通过阿里云后台的 VNC 进入远程连接。

- 首先登录
learn用户,然后输入命令sudo systemctl restart sshd.service重启 SSH 服务,再输入命令sudo systemctl restart firewalld.service重启防火墙服务。最后输入exit命令退出登录。

4、修改本地 config 配置文件
- 首先打开电脑终端 PowerShell,输入
cd .ssh进入.ssh路径下。Mac 用户输入命令vim config,Windows 用户则输入命令notepad config修改config配置文件,将端口号改为12345。

- 最后,我们可以通过命令
ssh learn登录远程服务器!
