主页
avatar

Kared

走上云端:云服务器使用入门指南

一、设置用户组 & 用户

1、登录远程服务器

① 方法一:通过浏览器登录

  1. 如果购买的阿里云服务器,可以在实例列表中找到目标服务器,在远程连接中选择 VNC 以打开管理终端。
  2. 打开管理终端后,记住初始密码并输入该密码。接着,输入账号 root 和相应密码,以 root 用户身份登录远程服务器。最后,使用命令 exit 退出登录。

实例列表

② 方法二:通过本地登录(检查是否安装 OpenSSH

  1. 按下 Win + R 键,输入 powershell 以打开 PowerShell。然后输入 ssh root@你的公网ip,输入密码后即可以 root 用户身份登录远程服务器。

本地登录远程服务器

2、创建用户组和用户

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

创建用户和组

3、修改新用户的权限(以 root 用户操作)

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

强制保存并退出文件

4、禁止 root 账号进行 SSH 远程登录

  1. 输入命令 cd /etc/ssh 切换到 /etc/ssh 目录,并使用 ls 命令查看该目录下的所有文件。接着,输入命令 vim sshd_config 打开 sshd_config 文件。
  2. sshd_config 文件中找到 #PermitRootLogin yes,按 i 键进入编辑模式,将其修改为 PermitRootLogin no,并去掉 # 符号。按 Esc 退出编辑模式。
  3. :,输入 wq 并回车以保存并退出文件。
  4. 修改完配置文件后,使用命令 systemctl restart sshd.service 重启 SSH 服务。然后输入 exit 退出登录。再次尝试使用 root 账号登录时,您会发现登录请求被拒绝。此时,您可以使用 Ctrl + C 键终止当前命令。
  5. 至此,我们成功禁止了 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_keyslearnfile.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 configconfig.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 安装 cronieyum-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 crondsudo systemctl start yum-cron 启动 crondyum-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",最后保存并退出。

第二步:修改安全组中的配置规则

进入阿里云后台:

  1. 打开安全组选项;
  2. 打开配置规则并修改相应的配置规则;
  3. 点击添加安全组规则;
  4. 填写相应的端口范围;
  5. 授权对象填 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 登录远程服务器!
云服务器 Linux SSH 安全防火墙 远程登录 Web Server CentOS"