如何使用SSH密钥认证

通过远程登录需要SSH密钥来保护服务器

通常,当您登录远程服务器时SSH,您使用用户名和密码组合执行此操作。但是,使用密码仅限于长度密码你可以记住或愿意输入。通过SSH密钥身份验证,加密密码短语提供比使用标准密码的更实用的安全凭据。SSH密钥身份验证中的加密强度超出了标准密码可以匹配的内容。

生成你的ssh键

打开在您计划用于登录服务器的客户端计算机上的终端窗口,然后发出命令:

ssh - keygen

接下来,您提示您输入新密钥的文件名。建议您接受默认值(〜/ .ssh / id_rsa)。然后,选择并验证密码。做这一点密码一个坚强的人。

命令完成后,您的钥匙已准备好使用。

Linux下生成SSH密钥的截图。

将密钥复制到服务器

使用SSH将密钥复制到远程服务器。问题的命令

ssh-copy-id USER@SERVER_IP

用户是用户名,而server_ip是IP地址您要登录的服务器。您提示您输入用户密码。成功验证后,SSH密钥副本,您可以以正常方式登录服务器。

由于您正在登录的客户端从服务器上登录,因此您将登录服务器上的匹配密钥。

在需要SSH进入服务器的每个客户端计算机上重复此过程。

把它锁定

在服务器中禁用密码身份验证被认为是一种最佳的安全实践,它只依赖于SSH密钥身份验证。相应地修改SSH守护进程配置。执行以下命令打开配置文件:

sudo nano / etc / ssh / sshd_config

在该文件中,寻找线路:

#passwordaechentication是的

通过删除hashtag来解释行,然后更改是的没有

接下来,寻找线路:

#pubkeyaechentication是的

不评论这条线。

在Linux上找到的sshd_config文件的屏幕截图。

保存并关闭文件。使用命令重新启动SSH守护程序:

sudo systemctl重新启动sshd

现在,如果您尝试从任何不包含匹配的SSH密钥的客户端SSH,则将拒绝访问。

存储的SSH密钥在哪里?

登录您复制键的服务器。发出命令:

少〜/ .ssh /授权_keys

您将看到从客户端发送的所有密钥(使用ssh-copy-id命令)。要撤销特定客户机的SSH密钥验证,请删除与客户机主机名对应的行(主机名是密钥中的最后一点信息)。

在Linux上找到的授权_keys文件的屏幕截图。
这个页面有用吗?