1. 概述
Linux 密钥登录是一种简单而安全的远程访问方式,它使用密钥对(公钥和私钥)进行身份验证和加密通信。与传统的密码登录方式相比,密钥登录具有更高的安全性,因为它不涉及传输和存储密码。本文将介绍如何使用密钥登录来实现远程访问。
2. 生成密钥对
2.1 生成 SSH 密钥对
首先,我们需要生成 SSH 密钥对。打开终端,并输入以下命令:
ssh-keygen -t rsa -b 4096
这将生成一个 4096 位的 RSA 密钥对。按照提示输入文件名和密码,或者直接按 Enter 键接受默认值。
2.2 查看公钥
生成密钥对后,我们可以查看公钥的内容。使用以下命令:
cat ~/.ssh/id_rsa.pub
将会显示公钥的内容,类似于下面的示例:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCz7h...6E7IymaLObcUvw== user@host
复制这一串字符,我们稍后将用它来设置远程服务器。
3. 配置远程服务器
3.1 复制公钥至远程服务器
将前面复制的公钥添加到远程服务器的授权密钥文件中。在本地终端使用以下命令:
ssh-copy-id user@remote_server
其中,user 是你的用户名,remote_server 是远程服务器的 IP 地址或域名。如果成功,你将会看到一条类似于下面的消息:
Number of key(s) added: 1
3.2 配置远程服务器
完成上一步后,我们需要修改远程服务器的 SSH 配置文件。使用以下命令:
sudo nano /etc/ssh/sshd_config
在打开的文件中,找到以下行:
PermitRootLogin yes
将其改为:
PermitRootLogin no
然后,找到以下行:
PasswordAuthentication yes
将其改为:
PasswordAuthentication no
保存文件并退出。
3.3 重启 SSH 服务
在完成上述配置修改后,我们需要重启 SSH 服务才能使配置生效。使用以下命令:
sudo systemctl restart ssh
此时,你的远程服务器已经配置好了密钥登录。
4. 远程访问
现在,你可以使用密钥登录到远程服务器。在本地终端使用以下命令:
ssh user@remote_server
将 user 替换为你的用户名,remote_server 替换为远程服务器的 IP 地址或域名。
如果一切设置正确,你将能够成功登录到远程服务器,而无需提供密码。
5. 总结
Linux 密钥登录是一种简单而安全的远程访问方式。通过生成密钥对并将公钥配置到远程服务器上,我们可以实现无密码的身份验证。这种方式可以提高远程访问的安全性,同时也方便了用户的操作。