写在前面:
该篇博客为个人记录为主,若有错漏,请留言提出。

关于Linux服务器

我们搭建博客或者搭建自己的网站或服务,都需要服务器的支持,然而服务器一般都不是使用我们所熟悉的windows系统(你也可以使用windows server系统),这篇博客以ubuntu系统为例说一下服务器的基本配置,其他linux的发行版也类似,只是稍有不同。

解析主机ip(非必须)

有没有觉得你的服务器主机的ip特别难记,每次都要去翻才找到主机的ip,你可以将你的主机ip解析到一个你认为好记的域名或者子域名(如果你拥有域名的话)
如果你拥有域名,可以将你的主机ip解析到这个域名的子域名(例如:cloud.你的域名),这样你就可以用你解析域名地址代替难记的主机ip。

解析域名的方法不再累赘

root登录

首先使用root用户登录远程主机。

1
ssh root@主机ip或域名

如果你是初次登录, 命令行会出现警告, 说这是一个新地址, 存在安全风险。输入yes表示接受。如果登录之前你的远程服务器有设置了密码,就输入你设置的密码进行登录, 如果没有回车就能顺利登入远程主机。

紧接着, 修改root用户的用户密码。

1
passwd

输入你要设置的新的root用户密码

新建用户

首先, 添加一个新的用户组。

1
groupadd 用户组

然后添加一个新用户

1
useradd -d /home/新用户目录 -s /bin/bash -m 新用户

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

接着, 为新用户创建新用户密码

1
passwd 新用户

将新用户添加到刚新建的用户组

1
usermod -a -G 用户组 新用户

接着, 为新用户设定sudo权限

1
visudo

这个命令会打开sudo设置文件/etc/sudoers, 找到下面这一行

1
root	ALL=(ALL:ALL) ALL

在这行下面,在添加一行

1
2
root	ALL=(ALL:ALL) ALL
新用户 ALL=(ALL:ALL) ALL

如果你想sudo的时候不需要输入密码, 这改成下面的形式, 但是处于安全考虑, 还是要强制要求输入密码

1
2
root	ALL=(ALL:ALL) ALL
新用户 ALL=(ALL) NOPASSWD: ALL

然后退出之前登录的root用户,用新用户的身份登录, 看是否能登录成功,登录成功则新增用户配置正常,如果不能登录请重复以上步骤。

1
2
exit
ssh 新用户@主机ip或域名

配置ssh,禁止密码登录和root用户登录

ssh有密码登录和证书登录两种形式, 初学者一般都喜欢使用密码登录,甚至是使用root用户直接登录,而且密码相当简单。但是在实际工作中,尤其是在公司中,基本上是证书登录的,因为在外网的机器用密码登录是很容易收到攻击的,所以在生产环境中都是使用证书登录的。

证书登录的步骤说明

  1. 客户端生成证书, 包括私钥和公钥, 私钥是放在客户端 ,公钥放在服务器。为了安全,防止黑客拷贝,一般我们在客户端生成私钥的时候毒药设置一个密码。
  2. 把客户端生成的公钥上传到服务器上, 添加到用户目录下的.ssh文件夹下的指定文件中, 这就完成了ssh证书登录的配置了。如果其他客户端也想通过私钥ssh登录这个服务器,同理上传公钥到服务器

客户端生成私钥和公钥

查看用户目录下.ssh下有没有存在私钥和公钥,如果没有,使用如下命令生成

1
ssh-keygen -t rsa

假设用户是admin,则在home目录下的.ssh/下生成私钥和公钥(windows在用户目录下)

配置服务端的ssh

用vim编辑/etc/ssh/sshd_config

1
2
3
4
5
# 禁止root用户登录
PermiRootLogin no

# 禁用密码登录
PasswordAuthentiation no

服务器的ssh已经基本配置完毕,现在需要我们将客户端生成的公钥上传到服务器上, 并把公钥添加到authorized_keys
在客户端执行以下命令

1
scp ~/.ssh/id_rsa.pub 新用户@128.209.199.242:~

这句命令的意思是上传客户端的公钥到服务器的用户目录下

然后在服务器执行命令

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

这句命令的意思是将上传的公钥追加到authorized_keys文件上, 如果没有这文件目录,请自行创建

重启ssh服务器

1
/etc/init.d/ssh restart

至此, ssh的配置已经基本完成了, 现在你可以使用ssh命令使用新用户登录服务器了

1
ssh -i ~/.ssh/id_rsa 新用户@128.209.199.242

指定私钥进行ssh链接

每次ssh连接都要指定私钥的路径是不是觉得很麻烦, 所以我们可以把私钥的路径加入我们客户端的默认配置里面
修改/etc/ssh/ssh_config

1
2
3
4
# 系统已经默认将id_rsa私钥的路劲加入
IdentityFile ~/.ssh/id_rsa
# 其他私钥如法炮制
IdentityFile ~/.ssh/其他私钥

这样你就可以不用指定私钥的路径进行ssh连接了

1
ssh 新用户@128.209.199.242

快速ssh登录

每次ssh连接都要敲这么长的命令,我们可以将这些参数都配置成一个配置文件
在本机的~/.ssh文件夹下创建config文件,内容如下:

1
2
3
4
Host hostName
HostName 128.209.199.242
User 新用户
port 22

再开启一个shell窗口,测试配置的ssh能否正常登录

1
ssh hostName

总结

本文记录了服务器的基本配置,这只是对用户管理进行了配置,服务器的配置还有其他方面例如防火墙, 环境的配置等。