Linux VPS配置密钥登录并禁用密码登陆
使用 Linux 服务器的时候,可以通过修改 SSH 端口并设置复杂的密码,以确保服务器安全。为了避免密码泄露风险,进一步提高安全性,我们还可以配置密钥登录并禁用密码登陆。因为每个密钥对都是独一无二的,且私钥可以设置高强度的加密保护(如设置密码保护私钥文件等),相比于密码可能存在的被猜测、撞库等情况,他人很难仿冒合法的密钥去登录 VPS,保障了只有持有正确私钥的授权用户才能访问服务器。
创建SSH密钥对
SSH 连接到需要配置密钥登录的服务器,执行如下命令创建密钥对:
ssh-keygen
输入密钥文件的保存路径,默认保存到 /root/.ssh/ 文件夹。
root@localhost:~# ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key (/root/.ssh/id_ed25519):
输入密钥文件密码,如果不设置密码直接按两次回车:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
创建密钥对成功:
:
#PubkeyAuthentication yes
按Insert键进入编辑模式,去掉前面的井号:
PubkeyAuthentication yes
按Esc退出编辑模式,输入:wq退出保存。重启SSH服务使配置生效:
systemctl restart ssh
# 或
systemctl restart sshd
使用私钥进行SSH连接
这里以Windterm为例(其他SSH工具请看本站相关教程),使用私钥登录服务器,右击会话,选择『属性 – SSH – 验证』处,去掉已勾选的『尝试密码认证』,勾选尝试『尝试私钥认证』,并在『身份验证文件』处选择刚刚下载下来的私钥文件:
禁用SSH密码登录
同样编辑ssh配置文件:
vi /etc/ssh/sshd_config
找到下面这一行(按/进入查找模式):
#PasswordAuthentication yes
去掉 #
号,并将其中的 yes
改为 no
:
PasswordAuthentication no
重启 SSH 服务使其生效:
systemctl restart ssh
# 或
systemctl restart sshd