在服务器领域,Linux 已经占据了主导地位。本文记录一些面对全新的 Linux 服务器,我们需要做哪些初始化工作。

本文以 Ubuntu 18.04 LTS 发行版本为例。

https://sensorstechforum.com/
Ubuntu

一、设置 SSH key

首先要解决的便是登录的问题。

通常情况下我们会使用“用户名/密码”的形式来登录,但每次都需要输入繁琐的密码(通常为了安全,我们会将服务器密码设置的无比复杂且不易记忆)是一件很耗时的操作。

我们可以设置 SSH key 来解决这个问题。

在本地机器创建公钥/私钥:

ssh-keygen -t ecdsa -b 521 # 创建 521 位的 ecdsa 算法密钥
Generating public/private ecdsa key pair.
Enter file in which to save the key (/Users/jerry/.ssh/id_ecdsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/jerry/.ssh/id_ecdsa.
Your public key has been saved in /Users/jerry/.ssh/id_ecdsa.pub.
The key fingerprint is:
SHA256:C2ghnf5Lr4zx/G9I32peT26Q2NRH8RxffDEeVyoKBNw jerry@jerry-rMBP.local
The key's randomart image is:
+---[ECDSA 521]---+
|     ..o.      BB|
|   . ...E     .o%|
|  . +   .   ...o=|
|   o o   . .... .|
|    + . S .+ . . |
|   . . .... +    |
|    . o..o ....  |
|     B o. +..+.  |
|    . *oo=+. .o  |
+----[SHA256]-----+

创建的密钥文件存在于用户目录下,比如 /Users/jerry/.ssh/id_ecdsa,这里建议使用默认文件名,对于自定义的密钥文件名,每次登陆均需要显示指定

拷贝公钥到服务器:

ssh-copy-id -i ~/.ssh/id_ecdsa root@66.228.46.91 # 指定密钥
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/jerry/.ssh/id_ecdsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@66.228.46.91's password: 

Number of key(s) added:        1

Now try logging into the machine, with:   "ssh 'root@66.228.46.91'"
and check to make sure that only the key(s) you wanted were added.

这样我们下次就可以直接使用 ssh root@66.228.46.91 来远程登陆服务器。

若是还会提示要输入密码,建议开启 -v 来查看 SSH 日志。

二、创建新的用户

root 账户下:

adduser dev-joe

为该账户添加管理员权限:

usermod -aG sudo dev-joe # 这样我们在该账户下就可以运行 “sudo command” 以达到管理员权限下运行 command 的目的

为该账户设置 SSH key:

# 在 root 账户下,拷贝已有的认证密钥到新账户下
rsync --archive --chown=dev-joe:dev-joe ~/.ssh /home/dev-joe

这样就可以使用 ssh dev-joe@66.228.46.91 来登录服务器了。

三、添加仓库源

有些情况下,仓库源是缺失的,我们需要添加回来:

sudo add-apt-repository universe

四、设置主机名

为服务器设置一个自定义主机名:

hostnamectl set-hostname cloud-staging

五、设置时区

设置服务器时区为中国时区:

timedatectl set-timezone "Asia/Shanghai"

更多用法请参考这里

六、配置防火墙

服务器的安全一直是最为重要的,防火墙可以把不受信任的连接挡在门外。

ufw allow ssh # 只开放 SSH 的端口
ufw enable # 开启防火墙

更多的服务端口,我们可以在之后使用系统的时候逐步开放,比如当 Nginx 安装之后我们可以开启 80/443 需要的端口:

ufw allow nginx # 等价于 ufw allow 80, ufw allow 443