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