1.VPS
虚拟专用服务器(Virtual Private Server)技术,是通过容器技术或虚拟化技术将物理服务器分割为多个虚拟服务器的托管服务 。其核心特征是为每个虚拟服务器分配独立公网IP地址、独立操作系统以及磁盘空间、内存、CPU资源,实现用户间系统配置隔离,支持自主安装程序及重启操作系统。
我选择购买香港的VPS,在VPS上使用wordpress来搭建自己的博客。
2.SSH
一般在终端上连接你的VPS的通用语法是
ssh -p <端口号> root@<IP地址>
然后系统会提示你输入密码,以此连接你的root用户。但是显然,这是不安全的。理由如下:
1.VPS的IP暴露在公网中,可以直接常见端口进行密码爆破,倘若是弱密码会被直接爆破。
2.倘若是强密码也未必安全。互联网上的不同接入设备是通过不同的路由节点连接在一起的。攻击者可以通过中间节点截取密码,直接获取用户输入的用户名和密码明文,再将其发送给服务器完成整个流程。通过这样的手段就能获得你服务器的root权限。
因此我们需要SSH来维护这个过程的进行。
安全外壳协议(Secure Shell,简称SSH)是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议,通过如下方法来使用它:
Step1:
ssh-keygen -t 加密方法 -C "你的邮箱或标识"
ssh-keygen用以创造一个SSH key,-t参数后写入想使用的加密方法,常见的有rsa,esa,ecdsa,ed25519(推荐)。-C参数后是注释,填写你想注释该SSH的内容,方便日后管理。这行命令运行后,接受默认存储路径~/.ssh/id_你的加密算法名称(如rsa,后文均使用rsa),再设置一个高强度的口令后,得到两个密钥:
1.~/.ssh/id_rsa:私钥,必须像密码一样绝对保密,永远不离开本地
2.~/.ssh/id_rsa:公钥,可以上传到任何你需要登录的服务器。
Step2:
使用 ssh-copy-id 命令,它能自动将公钥追加到VPS上对应用户的 ~/.ssh/authorized_keys 文件中。
ssh-copy-id -p <你的端口号> <你的用户名>@<VPS_IP地址>
<你的用户名>:如果按之前建议创建了普通用户(如 admin),务必使用此用户,而不是 root。
执行后,你已经将公钥成功上传到了你VPS的用户中。
Step3:
测试登录:
上传成功后,尝试用密钥登录,此时应无需输入用户密码(如果设置了密钥口令,需输入一次)。
bashssh -p <端口号> <用户名>@<IP地址>
禁用密码登录:
密钥登录测试成功后,在VPS上执行以下命令编辑SSH配置文件:
bashsudo nano /etc/ssh/sshd_config
找到并确保以下参数值:
bashPubkeyAuthentication yes # 启用公钥认证(默认应为yes)
PasswordAuthentication no
按 Ctrl+X,再按 Y,回车保存退出。
重启SSH服务使配置生效:
bashsudo systemctl restart ssh
至此,你的SSH配置成功。此后登录无需再次输入密码,直接登录。
SSH的原理大致是:
- 客户端生成一个随机的会话密钥
- 客户端用服务器的公钥加密这个会话密钥
- 发送加密后的会话密钥给服务器
- 服务器用自己的私钥解密,得到会话密钥
- 后续所有通信使用这个会话密钥进行对称加密
评论(0)
暂无评论