vps禁止密码登陆、ssh公钥密钥原理

来源:互联网 发布:mdf打开 sql 查看 编辑:程序博客网 时间:2024/05/22 15:35

配置

1).如果你使用的不是Pass,那么先配置VPS或者专用的服务器才能运行PHP应用。本文假设你会使用vim或者nano编辑器。
2).我们选择nginx服务器来作为我们的web服务器。

首次登录

ssh root@123.456.78.90

注意要把ip换成你自己的VPS的IP。
13.png

我这里使用的是vultr的VPS,这个VPS服务商是按小时收费的。这意味着,架设一台VPS的成本几乎为零。你可以点击这里注册。

升级软件

apt-get updateapt-get upgrade

这一步很重要,因为这能保证系统中默认的软件安装了最新的更新和安全修补。

14.png

15.png

输入y然后敲回车继续

非根用户

现在你的新服务器还是不太安全,因为我们必须要避免使用根用户。我们可以创建一个叫xiao的非根用户。密码必填,其他信息不是必填项,敲回车继续。

adduser xiao

16.png

接下来把他加入sudo用户组,使他拥有sudo权限。

usermod -G sudo xiao

17.png

SSH 密钥对认证

你在本地想访问VPS的时候推荐你使用密钥认证这种方式。简单来说,就是我们创建一对密钥,其中一个是私钥保存在本地设备中,另一个是公钥,传到你的VPS中,之所以叫做密钥对,是因为使用公钥加密的 消息只能使用对应的私钥解密。
使用SSH连接远程设备的时候,远程设备会随机创建一个消息,使用公钥加密之后把密文发送给本地设备,本地设备收到密文之后使用私钥解密,然后把解密后的消息发送给远程的服务器,远程的服务器验证了解密之后的消息,赋予你访问的权限。

ssh-keygenscp ~/.ssh/id_rsa.pub xiao@123.456.78.90:

第一个命令执行成功你的~/.ssh 目录会有如下文件
18.png
然后使用scp上传到远程服务器
19.png

然后登陆你的VPS确认这个~/.ssh/目录是否存在。

20.png

如果不存在则执行下面的命令

mkdir ~/.sshtouch ~/.ssh/authorized_keys

这个文件是一系列允许登陆这台VPS的公钥。然后将上传的公钥复制到这个文件中

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

现在使用下面的命令修改一下目录权限。

chown -R xiao:xiao ~/.sshchmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys

21.png

禁止密码和根用户登陆

修改/etc/ssh/sshd_config文件。将PasswordAuthentication设置为 no,然后将PermitRootLogin设置为no。
我是用的是vim,你可以使用你会的编辑器。

23.png

24.png

25.png

sudo service ssh restart

重启ssh使修改生效。
26.png

至此为止,我们的PHP部署服务器已经准备好,下一篇将会介绍PHP-FPM安装和配置,包括全局配置和进程池配置。

专题系列

PHP专题系列目录地址:https://github.com/xx19941215/webBlog
PHP专题系列预计写二十篇左右,主要总结我们日常PHP开发中容易忽略的基础知识和现代PHP开发中关于规范、部署、优化的一些实战性建议,同时还有对Javascript语言特点的深入研究。

原创粉丝点击