虽然不是专业的系统管理员,作为程序员还是会经常折腾一些VPS,势必要学会怎么配置一台服务器,而且,对于公司面试,掌握基本的系统管理知识还是有利的。况且,如今的网络安全环境下,掌握一些服务器安全方面的配置是非常有必要的。
1. 远程登录用户
在使用SSH远程登录时,由于root用户有着无限的权利,它能执行任何命令,所以尽量不要使用root用户登录。
Ubuntu
adduser jack //创建非根用户
usermod -a -G sudo jack // 让jack用户拥有sudo权限(即通过密码认证后可以执行特殊的权限的命令)
CentOS
adduser jack
passwd jack // 为jack用户设置密码
usermod -a -G wheel jack // 把jack加入wheel用户组
2. SSH密钥对认证
上面创建完jack用户后,就可以执行下面的命令登录:
ssh jack@123.123.78.90
此时,会要求你输入jack的密码,但密码认证也有漏洞,而且会受到暴力破解,不怀好意的人会不断尝试猜测你的密码,而且,每次登录时都要求你输入密码,是不是很麻烦呢?这时我们就需要创建SSH密码对认证(所谓密钥对,就是一对“密钥”,其中一个是私钥,保存在自己的电脑中,另一个是公钥,保存在服务器中,公钥加密的消息只能使用对应的私钥解密)。
ssh-keygen // 创建密钥对
然后按照屏幕提示输入所需要的信息,这个命令会在电脑创建两个文件:~/.ssh/id_rsa.pub(公钥)
和~/.ssh/id.rsa(私钥)
,私钥应该保存在本地电脑中,公钥上传到服务器。
// 把公钥上传到服务器中jack用户的家目录,后面一定要有":"
sup ~/.ssh/id_rsa.pub jack@123.123.78.90:
登录服务器,创建.ssh目录:
mkdir ~/.ssh
创建~/.ssh/authorized_keys文件,这个文件的内容是一系列允许登录这台服务器的公钥:
touch ~/.ssh/authorized_keys
把上传的公钥添加到~/.ssh/authorized_keys文件中:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
最后修改下面几个目录和文件的访问权限,让jack用户访问/.ssh目录和/.ssh/ahthorized_keys文件:
chown -R jack:jack ~/.ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
禁用密码和根用户登录
为了让服务器再安全一些,我们要禁止用户通过密码登录,还要禁止根用户登录。
vim /etc/ssh/sshd_config
上打开的配置文件中,这样修改:
// /etc/ssh/sshd_config
PasswordAuthentication no // 或者注释掉
PermitRootLogin no // 或者注释掉
改动之后,重启ssh服务:
# ubuntu
sudo service ssh restart
# CentOS
sudo systemctl restart sshd.service
运行完上面的命令,我们的服务器就安全很多了。
欢迎关注我的公众号:
网友评论