网站搜索

Ubuntu 服务器安装后的简单 BASH 脚本


今天,我偶然发现了一个名为“Ubuntu-server-setup”的简单 BASH 脚本,它可以帮助您在新安装后自动设置和配置 Ubuntu 服务器。该脚本将执行以下操作:

  • 添加具有 sudo 访问权限的新用户帐户
  • 为新用户帐户添加公共 ssh 密钥
  • 禁用服务器的密码验证
  • 拒绝 root 登录服务器
  • 设置简单的防火墙 (UFW)
  • 根据机器安装的内存创建交换文件
  • 设置服务器时区(默认值为“亚洲/新加坡”。您可以提及您的时区)
  • 安装网络时间协议

在这个简短的教程中,我们将了解如何在 Ubuntu 16.04 LTS 服务器中运行此脚本。这也可能适用于其他 Ubuntu 版本。

Ubuntu-server-setup - Ubuntu 服务器安装后脚本

在使用此脚本之前,您需要在客户端系统上创建公共 ssh 密钥。运行脚本时您将需要它。

要创建公共 ssh 密钥,请运行:

ssh-keygen -t rsa

输入密码两次。

Generating public/private rsa key pair.
Enter file in which to save the key (/home/sk/.ssh/id_rsa): 
Created directory '/home/sk/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/sk/.ssh/id_rsa.
Your public key has been saved in /home/sk/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:JFEf6UJEHVmuU/wO1zFUeXyE5oxhLCBfJOKB4yoX9mI sk@ubuntuserver
The key's randomart image is:
+---[RSA 2048]----+
| .=+*+=*. ==|
| o. *.+=++ +.+|
| . .o.o..o+* oo|
| o . o. .o..o.o|
| . + S.o . o .|
|. E . . + |
| + . . |
| |
| |
+----[SHA256]-----+

要查看新创建的 SSH 公钥,请打开新的终端窗口并运行:

cat ~/.ssh/id_rsa.pub

复制 ssh 公钥并妥善保管。您必须稍后输入该密钥。

现在,登录到您的 Ubuntu 服务器。使用命令安装'git'

sudo apt-get update
sudo apt-get install git

接下来,使用命令获取 Ubuntu-server-setup 脚本:

git clone https://github.com/jasonheecs/ubuntu-server-setup.git

上述命令会将最新版本克隆到当前工作目录中名为“ubuntu-server-setup”的文件夹中。

转到 Ubuntu-server-setup 目录并运行脚本,如下所示。

cd ubuntu-server-setup/
bash setup.sh

现在,您必须回答一系列问题。相应地回答。首先,输入新用户名:

Enter the username of the new user account:ostechnix
Enter new UNIX password:
Retype new UNIX password:
Adding user `ostechnix' ...
Adding new group `ostechnix' (1001) ...
Adding new user `ostechnix' (1001) with group `ostechnix' ...
Creating home directory `/home/ostechnix' ...
Copying files from `/etc/skel' ...
Changing the user information for ostechnix
Enter the new value, or press ENTER for the default
 Full Name []: Senthilkumar
 Room Number []: 123
 Work Phone []: 
 Home Phone []: 
 Other []: 
Is the information correct? [Y/n] y

复制/粘贴我们在上一步中创建的公共 ssh 密钥。

Paste in the public SSH key for the new user:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDg2S1/s3ZB/O/KBVT6OP0JEQKPQ3QjTOaWhAjFN9CJrb2IVYGx0P8SA52d81tw0UJXByXkPpxvGwXYbWukV6bF/mdm8kj+e+BxEYlq2sXbFdwW+lW0GwTYMq2tIRQ1Iec6QFLGNSi0QjLcIhG/JTg5TrmK9KyECCHRFQfR7cDWRXo2tBtMkDxdJdH/D4BdmO//rvSFgY4QiqjwmkKqgpLrK5ZvvfgjKWtO0+1D+hfrm+cTNGByWHvOAj3j5HyXB6dzNaKswCQygzkvESzXI6eyMWYW3+QNz2PBHbof+HVHSd9av7aC8IO31aUMsyvrTcSB3wHk0NpmrDfqLRvOspNb sk@ubuntuserver
Running setup script...

现在输入您的时区:

Enter the timezone for the server (Default is 'Asia/Singapore'):
Asia/Kolkata
Timezone is set to Asia/Kolkata
Installing Network Time Protocol... 
Setup Done! Log file is located at output.lo

请注意,除了您刚刚创建的用户(即本例中的 ostechnix)之外,您无法使用任何其他用户通过 ssh 连接到 Ubuntu 服务器。因为此脚本将禁用包括 root 在内的所有用户的基于密码的 ssh 身份验证。而且,您只能从已创建公共 ssh 密钥并将其与远程系统共享的客户端系统通过 ssh 连接到 Ubuntu 服务器。如果您想从其他系统进行 ssh,则应手动将 ssh 公钥上传到您希望能够使用 SSH 登录的远程服务器。

从现在开始,每次您尝试通过 ssh 连接到服务器时,系统都会要求您输入在客户端系统中创建的密码,如下所示。

ssh ostechnix@192.168.1.105

输入密钥的密码:

Enter passphrase for key '/home/sk/.ssh/id_rsa':

就是这样。 Ubuntu-server-setup 脚本刚刚完成了基本的安装后任务。开始安装您想要在服务器中运行的其他东西。

资源:

  • GitHub 上的 Ubuntu-server-setup 脚本