CentOS7服务器初步配置

在开发或者部署网站的时候,需要自己配置Linux服务器,本文以Centos7为例,记录了配置Linux服务器的初步流程

第一步:root用户登录

使用root用户登录远程主机(假定IP地址为192.168.1.125)

1
ssh root@192.168.1.125

这时,会出现警告,提示这是一个新的地址,存在安全风险。接收则输入yes

-----2016-08-22---10-30-13.png

登录远程主机之后修改root密码

1
passwd

第二步:新建用户

添加一个用户组admin

1
groupadd admin

然后,添加一个新的用户

1
useradd -d /home/sangjian -s /bin/bash -m sangjian

上面命令中,参数d表示指定用户的主目录,参数s指定用户的shell,参数m表示如果该目录不存在,则创建该目录。

设置新用户的密码。

1
passwd sangjian

将sangjian添加到用户组admin中

1
usermod -a -G admin sangjian

为sangjian用户设定sudo权限

1
visudo

visudo命令会打开文件/etc/sudoers,找到如下一行

1
root ALL=(ALL) ALL

添加一行

1
sangjian ALL=(ALL) NOPASSWD: ALL

上面的NOPASSWD表示,切换sudo的时候,不需要输入密码,我喜欢这样比较省事。如果出于安全考虑,也可以强制要求输入密码。
另开一个终端,以sangjian用户登录,检查是否设置成功

1
ssh sangjian@192.168.1.125

第三步:SSH设置

查看本机是否有SSH公钥(一般是~/.ssh/id_rsa.pub),如果没有则可以使用ssh-keygen命令生成

1
ssh-keygen

想省事的话可以一直按回车即可

将刚生成的id_rsa.pub文件的内容追加到服务器的authorized_keys文件中
可以使用scp命令将生成的id_rsa.pub文件上传到服务器中,再将文件的内容追加到authorized_keys文件中

1
scp ~/.ssh/id_rsa.pub sangjian@192.168.1.125:/home/sangjian/mac_id_rsa.pub

上面的命令是将本地的公钥上传到服务器中的/home/sangjian目录下的mac_id_rsa.pub文件中

再执行追加命令(如果~/.ssh目录不存在,则新建)

1
cat mac_id_rsa.pub > ~/.ssh/authorized_keys

修改SSH配置文件/etc/ssh/sshd_config
在配置文件中找到 #Port 22,修改默认的端口,范围可以从1025到65536

1
Port 6983

修改如下设置并确保去除了#号

1
2
3
4
5
6
7
8
Protocol 2
#禁止root用户登录
PermitRootLogin no
#禁止使用密码登录
PasswordAuthentication no
PermitEmptyPasswords no
PasswordAuthentication yes

最后,在配置文件的末尾添加一行用来指定可以登录的用户

1
AllowUsers sangjian

保存退出后,修改authorized_keys和.ssh的文件权限

1
2
sudo chmod 700 ~/.ssh/
sudo chmod 600 ~/.ssh/authorized_keys

确保.ssh的权限为700,authorized_keys的权限为600,否则登录的时候会出现如下错误

-----2016-08-22---10-54-52.png

查看日志

1
sudo tail -n 20 /var/log/secure

可以看到登录时的日志有如下一句

1
localhost sshd[2359]: Authentication refused: bad ownership or modes for file /home/sangjian/.ssh/authorized_keys
-----2016-08-22---10-58-33.png

重启SSHD

1
sudo service sshd restart

检查是否可以免密码登录

1
ssh sangjian@192.168.1.125 -p 6983

发现不可以,提示

1
ssh: connect to host 192.168.1.125 port 6983: Connection refused

第四步:登录失败问题解决

出现这一情况主要是防火墙端口开放的问题
查看日志

1
sudo tail -n 20 /var/log/secure

发现没有失败的日志输出
查看防火墙是否开启

1
systemctl status firewalld

如果开启了,则原因就是刚刚设置的ssh端口6983并没有添加到防火墙中
添加端口到防火墙

1
sudo firewall-cmd --zone=public --permanent --add-port=6983/tcp

重启防火墙

1
sudo systemctl restart firewalld

查看端口是否添加成功

执行sudo firewall-cmd --list-all,如果出现以下输出,则证明添加成功

-----2016-08-22---11-18-34.png

第五步 登录服务器

SSH的配置已经完成了,下面测试以下是否可以登录

输入ssh sangjian@192.168.1.125 -p 6983,提示

-----2016-08-22---11-20-02.png

表示已经登录成功了,至此基于Centos7的服务器初步配置已经完成了。

本文主要介绍了SSH配置,剩下的可以根据需要配置一些安全相关的设置,比如防火墙的设置,端口的限制等等。