走上云端:云服务器使用入门指南
一、设置用户组 & 用户
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"
,最后保存并退出。
第二步:修改安全组中的配置规则
进入阿里云后台:
- 打开安全组选项;
- 打开配置规则并修改相应的配置规则;
- 点击添加安全组规则;
- 填写相应的端口范围;
- 授权对象填
0.0.0.0/0
表示对所有人授权。
第三步:重启防火墙服务和 sshd 服务
- 重启防火墙和 SSH 服务会导致与本地断开连接,因此建议通过阿里云后台的 VNC 进入远程连接。
- 首先登录
learn
用户,然后输入命令sudo systemctl restart sshd.service
重启 SSH 服务,再输入命令sudo systemctl restart firewalld.service
重启防火墙服务。最后输入exit
命令退出登录。
第四步:修改本地 config 配置文件
- 首先打开电脑终端 PowerShell,输入
cd .ssh
进入.ssh
路径下。Mac 用户输入命令vim config
,Windows 用户则输入命令notepad config
修改config
配置文件,将端口号改为12345
。 - 最后,我们可以通过命令
ssh learn
登录远程服务器!