一台新的Linux服务器所需的准备工作
前言
拿到一台新的 Linux
服务器应该做些什么呢?以下操作基本上是要做的,主要是保证安全及易用的一些设置,自己也刚好记录一下,这里以 CentOS 7
来做演示,其它操作系统除了部分命令不一样,其实都是一个道理。
如果还有其它您觉得有必要但没有写到的准备工作,欢迎补充。
第一步:root用户登录
首先,使用 root
用户登录远程主机(假定IP地址是111.111.111.111)。
ssh root@111.111.111.111
这时,命令行会出现警告,表示这是一个新的地址,存在安全风险。键入yes,表示接受。然后,就应该可以顺利登入远程主机。
接着,修改 root
用户的密码。
passwd
第二步:新建用户组及用户
首先,添加一个用户组(这里假定为 admin
用户组)。
groupadd admin
然后,添加一个新用户(假定为 bill
)。
useradd -d /home/bill -s /bin/bash -m bill
上面命令中,参数 d
指定用户的主目录,参数 s
指定用户的shell,参数 m
表示如果该目录不存在,则创建该目录。
接着,设置新用户的密码。
passwd bill
将新用户(bill)添加到用户组(admin)。
usermod -a -G admin bill
接着,为新用户设定 sudo
权限。
visudo
如果提示找不到 visudo
,需要安装一下 sudo
这个程序。
visudo命令会打开sudo设置文件 /etc/sudoers
,找到下面这一行。
root ALL=(ALL:ALL) ALL
在这一行的下面,再添加一行。
root ALL=(ALL:ALL) ALL
bill ALL=(ALL) NOPASSWD: ALL
上面的 NOPASSWD
表示,切换 sudo
的时候,不需要输入密码,我喜欢这样比较省事。如果出于安全考虑,也可以强制要求输入密码。
root ALL=(ALL:ALL) ALL
bill ALL=(ALL:ALL) ALL
然后,先退出root用户的登录,再用新用户的身份登录,检查到这一步为止,是否一切正常。
exit
ssh bill@111.111.111.111
第三步:SSH设置
首先,确定本机有 SSH公钥
(一般是文件 ~/.ssh/id_rsa.pub
),如果没有的话,使用 ssh-keygen
命令生成一个(SSH教程)。
在本机上另开一个shell窗口,将本机的公钥拷贝到服务器的 authorized_keys
文件。
cat ~/.ssh/id_rsa.pub | ssh bill@111.111.111.111 'mkdir -p .ssh && cat - >> ~/.ssh/authorized_keys'
# 或者在服务器端,运行下面命令
echo "ssh-rsa [your public key]" > ~/.ssh/authorized_keys
然后,进入服务器,编辑SSH配置文件 /etc/ssh/sshd_config
。
sudo cp /etc/ssh/sshd_config ~
sudo vi /etc/ssh/sshd_config
在配置文件中,将SSH的默认端口22改掉,可以改成从1025到65536之间的任意一个整数(这里假定为25000),如果改成其它值了,服务器开放端口哦,不然到时候连不上。
Port 25000
然后,检查几个设置是否设成下面这样,确保去除前面的#号。
Protocol 2
PermitRootLogin no #是否允许root用户以任何认证方式登录,有yes/no/without-password
PermitEmptyPasswords no #是否允许空密码登录
PasswordAuthentication no #是否密码认证
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
UseDNS no
上面主要是禁止root用户登录,以及禁止用密码方式登录。
接着,在配置文件的末尾,指定允许登陆的用户。
AllowUsers bill
保存后,退出文件编辑。
接着,改变 authorized_keys
文件的权限。
sudo chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh/
然后,重启SSHD。
sudo systemctl restart sshd.service
下面的一步是可选的。在本机~/.ssh文件夹下创建config文件,内容如下。
Host work1
HostName 121.0.0.3
User root
Port 22
Host work2
HostName 121.0.0.4
User root
Port 22
最后,在本机另开一个shell窗口,测试SSH能否顺利登录。
ssh work1
这步是通过配置后快速连接服务器,当然你也可以使用其它方法,如 alias
,来实现快速连接服务器。
第四步:启用防火墙
不同发行版所使用的 iptables 前端可能是不一样的,比如 CentOS
使用的是 firewalld
,而 Ubuntu
使用的是 ufw
。这里不细讲,可以自行搜索,为了安全起见,开启防火墙及放行端口配置是必须做的。
第五步:运行环境配置
登录成功后你可能会发现一个waring:
warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
解决方式:
在 /etc/environment
加入以下两行,重新登陆即可。
LANG=en_US.utf-8
LC_ALL=en_US.utf-8
然后,更新软件。
sudo yum update
第六步:设置时间同步
如果你买的是国外的VPS,在同步时间之前要先把时区改成中国时区:
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
然后再输入:
sudo ntpdate us.pool.ntp.org
一般的VPS都安装有NTP,如果没有安装我们需要先安装一下:
yum install -y ntp
设置同步服务器时间,同步完毕之后,输入:
date
测试下当前时间,看看是否已经同步。
第七步:安装zsh
1. 安装zsh包
sudo yum -y install zsh
2. 切换默认shell为zsh
chsh -s /bin/zsh
3. 安装on my zsh
这一步需要安装git,sudo yum install git
curl:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
wget:
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
如果拉取ohmyzsh脚本太慢,可以将先使用gitee镜像脚本:
1.wget https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh
2.编辑下载好的install.sh,将内容 https://github.com/${REPO}.git
替换成 https://gitee.com/mirrors/oh-my-zsh.git
后保存。
3.sh install.sh
实际上到这一步 oh my zsh
就已经安装完成了。
4. 修改oh my zsh 主题
查看oh my zsh主题:
ls ~/.oh-my-zsh/themes
显示如下:
adben.zsh-theme gallois.zsh-theme nicoulaj.zsh-theme
af-magic.zsh-theme garyblessington.zsh-theme norm.zsh-theme
afowler.zsh-theme gentoo.zsh-theme obraun.zsh-theme
agnoster.zsh-theme geoffgarside.zsh-theme peepcode.zsh-theme
alanpeabody.zsh-theme gianu.zsh-theme philips.zsh-theme
amuse.zsh-theme gnzh.zsh-theme pmcgee.zsh-theme
apple.zsh-theme gozilla.zsh-theme pure.zsh-theme
arrow.zsh-theme half-life.zsh-theme pygmalion.zsh-theme
修改主题:
vim ~/.zshrc
可以看到默认的主题是 ZSH_THEME="robbyrussell"
改成自己喜欢的即可
参考资料
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »