服务器使用杂记¶
第一件事¶
服务器到手的第一件事:创建安全的管理员账户,禁用 root
账户的密码登录。
创建用户账户并分配权限¶
useradd --create-home --groups {{group1,group2,...}} --shell {{path/to/shell}} {{username}}
要让该用户有 sudo
权限,将其加入到 root
或 sudo
用户组中。
SSH 配置¶
-
向
/root/.ssh/authorized_keys
添加本地主机的 SSH 密钥 -
在
/etc/ssh/sshd_config
中禁用root
账户的密码登录
PermitRootLogin = prohibit-password
- 重启
sshd
守护进程
sudo systemctl restart ssh.service
sudo systemctl restart sshd.service
初始化配置¶
控制台¶
在服务器控制台,检查以下端口的开启情况:
22
用于SSH
远程登陆80
用于HTTP
访问
有些情况下你可能需要重置云盘等,参考服务器手册即可
系统配置¶
使用 SSH 远程登陆 root 用户,第一件事是:apt update && apt upgrade
update
获取所有源的包信息。如果不执行该命令,你会发现 apt 提示找不到软件。
接下来,安装常用的工具。我一般会安装:
fish
tldr
git
本地 Hexo 配置¶
注意:Hexo 的这些配置应当在你写博客的本地机器上进行,而不是你部署博客网站的服务器上进行。
参考Hexo 官方文档完成安装
npm 换源¶
换元的命令是:npm config set registry http://mirrors.cloud.tencent.com/npm/ --global
在本地机器上配置 npm 环境时我被网络环境折腾了好久。可以多积累一些软件源,这样方便根据不同的网络环境更换:
- 官方源:
https://registry.npmjs.org/
- 淘宝源:
https://registry.npm.taobao.org/
- cnpm 源:
https://r.cnpmjs.org/
- 腾讯源:
https://mirrors.cloud.tencent.com/npm/
- npmMirror 源:
https://skimdb.npmjs.com/registry/
当然,你也可以安装 nrm
来管理你的 npm 源,命令是 npm install -g nrm
。但首先要能连上一个 npm 源。nrm ls
命令列出一些可用源。
还有可能出现的错误:
UNABLE_TO_VERIFY_LEAF_SIGNATURE
http://stackoverflow.com/questions/20747817/error-unable-to-verify-leaf-signature-phonegap-installation
解决:npm config set strict-ssl false
还是可能出错,这时只需把上面的所有源换成非 https 即可
再继续出错,则在各项 config 的命令后面加上
--g
Hexo 和 git 自动部署配置¶
本节将涉及 Linux 系统权限和用户管理、SSH 密钥等内容。
参考教程:Hexo 部署到阿里云服务器 ECS
分配 git 用户¶
分配 git 用户时,目录的权限非常重要。
- git 的家目录
在家目录中,特别要注意使用 root 用户创建的文件。比如我使用 root 用户创建了 .ssh 配置文件免密钥登陆,但权限并没有给 git 用户,因此远程密钥登陆持续失败。配置好密钥登陆后,可以把 git 用户的密码改成随机生成的强密码,保证安全。也可以配置取消密码登陆:
# /etc/ssh/sshd_config
PasswordAuthentication no//禁止密码登陆
ChallengeResponseAuthentication no
- git 的工作目录
在自动部署的过程中, git 用户会操作两个目录:网站目录和仓库目录。这两个目录的权限都要给到:
chown -R git:git /path/to/repo
chmod -R 755 /path/to/repo
搭建个人电子图书馆¶
本文基于 Calibre-Web。
安装¶
Calibre-Web 的安装过程并不复杂,按照教程来即可。
Nginx 反向代理¶
Calibre-Web 默认监听本地 8083 端口,可以使用 Nginx 反向代理出去。
server {
listen 80;
server_name your_domain_name;
location / {
proxy_pass http://127.0.0.1:8083;
proxy_set_header Host $proxy_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
配置¶
参考 GitHub 仓库的 Wiki。建议开启匿名访问。开启匿名访问后,用户列表中新增 Guest
用户,可以进行配置。为了免受爬虫和攻击,可以考虑不向匿名用户开放阅读和下载权限。