【Linux配置密钥登录】领导说再用密码登录服务器,马上走人

382 阅读2分钟

Linux配置密钥登录

当涉及到需要远程连接到 Linux 服务器时,密码登录可能是最常用的方式。但是使用密码会增加许多不必要的风险和安全隐患,如密码泄露、爆破等。相比较而言,密钥登录可以提供更高的安全性和便利性。

本文将介绍如何在 Linux 操作系统上进行密钥登录配置,让你以更加方便快捷和安全的方式与远程服务器进行通信。无论你是作为开发者或者是管理员,在日常工作中,这都是一个非常实用的技能。

准备工作

  1. 制作密钥对

这里在window下E:\ssh2\id_rsa生成密钥对。 值得注意的是,一定要输入密码,不输入密码就是免密登录了

PS E:\ssh2> ssh-keygen.exe
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\Lenovo/.ssh/id_rsa): E:\ssh2\id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in E:\ssh2\id_rsa.
Your public key has been saved in E:\ssh2\id_rsa.pub.
The key fingerprint is:
SHA256:AansztzDKJzKrTJSXugrSjWqChB93gzKWnRm5a0/J8o lenovo@DESKTOP-F1SSROA
The key's randomart image is:
+---[RSA 3072]----+
|      o.         |
| .   o.o         |
|. o.*.. o        |
| + Bo+ . .       |
|. +=. + S        |
|.o= +  .         |
|oB * +  + .      |
|X B =.+. +       |
|X*o+  E.         |
+----[SHA256]-----+

image.png 2. 新增用户

我们先用root登录进去linux服务器,新增用户tt,不需要给tt添加密码,因为我们就是准备使用密钥登录

useradd -d "/home/tt" -m -s "/bin/bash" tt

解释:
-d “/home/tt” :就是指定/home/tt为主目录
-m 就是如果/home/tt不存在就强制创建
-s 就是指定shell版本

此时,在home目录下生成tt目录,这个目录表示tt用户的主目录 image.png

  1. tt目录下生成.ssh/authorized_keys
mkdir /home/tt/.ssh
touch /home/tt/.ssh/authorized_keys 
chmod 755 /home/tt/*

同时,将步骤一生成的id_rsa_pub里面的内容,复制到authorized_keys

image.png

  1. 修改sshd_config文件

编辑 /etc/ssh/sshd_config 文件,进行如下设置:

RSAAuthentication yes
PubkeyAuthentication yes
  1. 重启sshd
systemctl restart sshd

测试密钥登录

在window刚刚生成id_rsa的目录中,执行:

 ssh -i .\id_rsa tt@{ip}

这个时候可以看到,提示需要输入 id_rsa 中的密码, image.png

输入密码后回车,即可进入服务器,同时我们看到,进入的是tt用户的主目录

image.png

后续的一些问题

  1. 从上面的配置,我们可以实现了密钥登录,那么我们是否还可以使用普通的账号密码登录呢?

答案是:可以

我们在Linux重新给tt用户,赋值上密码,使用指令:passwd tt

普通的登录指令:ssh tt@10.3.10.255。此时需要输入tt的密码

普通的登录指令:ssh -i .\id_rsa tt@10.3.10.255。此时需要输入id_rsa的密码

  1. 既然可以使用id_rsa登录,那么密码登录就没必要了吧?

我们可以关闭账号密码登录

修改/etc/ssh/sshd_config文件:

PasswordAuthentication禁用密码登录: PasswordAuthentication no