Skip to content

云服务器初始化脚本

在本地 hosts 中设置 `

ssh免密登录

  1. 确保服务器的ssh服务已安装,若没有安装在安装ssh服务。
bash
sudo apt install openssh-server
  1. 设置ssh服务的配置文件。确保一下内容去掉了注释。
bash
sudo vim /etc/ssh/sshd_config

找到以下内容,并去掉注释符”#“
=========================
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys
=========================
  1. 配置ssh用户的.ssh/authorized_keys文件。若~/.ssh/authorized_keys不存在,则建立.ssh文件夹和authorized_keys文件。将要免密电脑的id_rsa.pub的内容追加到~/.ssh/authorized_keys中.
bash
cat id_rsa.pub >> ~/.ssh/authorized_keys
  1. 配置文件的权限。
bash
chmod 600 ~/.ssh/authorized_keys
#设置.ssh目录权限
chmod 700 -R ~/.ssh
  1. 重启sshd服务。
bash
sudo service sshd restart
# sudo systemctl restart sshd

附录: 要免密电脑的id_rsa.pub的路径通常位置为~/.ssh/id_rsa.pub。 若不存在则需要生成,通常使用的生成ssh公私钥的命令为ssh-keygen -t rsa -C 邮箱地址ssh-keygen命令在windows11、linux、macos中默认安装,可以直接使用。

公钥信任

bash
# 生成公钥
ssh-keygen -t rsa -P ''

[johan@iZuf61fxudjflq5eqyrnwpZ ~]:~$ ssh-keygen
...
The key fingerprint is:
SHA256:IeFPfrcQ3hhP64SRTAFzGIHl2ROcopl5HotRi2XNOGk [johan@iZuf61fxudjflq5eqyrnwpZ ~]
The key's randomart image is:
+---[RSA 2048]----+
|      .o*@=o     |
|     ..oEB=o     |
|      o@=+O .    |
|      B=+o @ .   |
|       =So* *    |
|      . o. = .   |
|            o    |
|                 |
|                 |
+----[SHA256]-----+

# 查看公钥
cat .ssh/id_rsa.pub 

# 将公钥拷贝到服务器
scp ~/.ssh/id_rsa.pub root@47.102.152.XXX:/root

# 将公钥加入信任列表
cat id_dsa.pub >> ~/.ssh/authorized_keys
bash
ssh-copy-id root@server1 #

Node:https://nodejs.org/zh-cn/download/package-manager

git:sudo apt install -y git vim

先下载 cnpm,不然下载速度和墙的原因访问不了其他的包

shell
npm install -g cnpm --registry=https://registry.npmmirror.com

pnpm(包管理库)

下载 zsh

配置 zsh

解决 zsh: command not found: node

shell
vim .zshrc
shell
source ~/.bashrc

Linux 管理员的一个重要任务是保护服务器免受非法攻击或访问。 默认情况下,Linux 系统带有配置良好的防火墙,比如iptables、Uncomplicated Firewall(UFW),ConfigServer Security Firewall(CSF)等,可以防止多种攻击。

  • 部署方案规划
  • 待部署项目分析
  • 选购及备案域名
  • 厂商对比与选配阿里云服务器
  • 初步 SSH 无密码登录连接和配置
  • 搭建 Nodejs/MongoDB/Nginx 环境
  • 配置 IPTables/Fail2Ban 防火墙及主动防御
  • 域名 DNS 转移及 A 记录/CNAME 解析配置
  • MongoDB 角色配置与安全规则设置
  • 线上 MongoDB 单表单库导入导出与跨机迁移备份上传
  • PM2 发布环境配置
  • 服务器与 Git 仓库读写配置
  • PM2 一键部署线上 Nodejs 项目
  • 电影网站/ReactNative App 后台/微信公众号/微信小程序后台等项目实战部署
  • SSL 证书申请及 Nginx 证书集成提供 HTTPS 协议
  • 上线方案复盘总结

防火墙

下载(firewalld 或者 ufw)

1、更新软件包

sudo apt update

2、安装 UFW

sudo apt install ufw

3、如果你在远程位置连接你的服务器,在启用 UFW 防火墙之前,你必须显式允许进来的 SSH 连接。否则,你将永远都无法连接到机器上。

sudo ufw allow 22/tcp

如果 SSH 运行在非标准端口,你需要将上述命令中的 22 端口替换为对应的 SSH 端口。

4、放开 1Panel 系统端口。

sudo ufw allow 8090/tcp

上述命令中的 8090 端口需要替换为安装 1Panel 系统时自定义的端口。

5、启动 UFW

sudo ufw enable

开启 Fail2ban

1、安装 Fail2ban

sudo apt-get install fail2ban

2、Debian 12 及以上的版本需要手动安装 rsyslog

sudo apt-get install rsyslog

3、启动 Fail2ban 服务

sudo systemctl start fail2ban

4、开机自启动

sudo systemctl enable fail2ban

5、查看 Fail2ban 服务状态。

sudo systemctl status fail2ban

lsof 命令

参考资料