在Linux系统中设置公钥登录可以增强系统的安全性,并简化登录过程。以下是关于公钥登录的基础概念、优势、类型、应用场景以及设置步骤:
公钥登录,也称为SSH密钥登录,是一种基于公钥加密技术的身份验证方法。它使用一对密钥:公钥和私钥。公钥存储在服务器上,而私钥保留在客户端。当客户端尝试连接到服务器时,服务器会使用公钥加密一个随机字符串,并将其发送给客户端。客户端使用私钥解密该字符串,并将其发送回服务器。如果服务器能够验证解密后的字符串,则允许客户端登录。
公钥登录主要涉及两种类型的密钥:
公钥登录广泛应用于远程服务器管理、自动化脚本执行、CI/CD管道等场景。
以下是在Linux系统中设置公钥登录的详细步骤:
在客户端机器上生成公钥和私钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
或者使用更安全的ED25519密钥:
ssh-keygen -t ed25519 -C "your_email@example.com"
按照提示操作,通常会将密钥保存在~/.ssh/id_rsa
(或~/.ssh/id_ed25519
)和~/.ssh/id_rsa.pub
(或~/.ssh/id_ed25519.pub
)。
将生成的公钥复制到服务器的~/.ssh/authorized_keys
文件中。可以使用以下命令:
ssh-copy-id user@server_ip
或者手动复制:
cat ~/.ssh/id_rsa.pub | ssh user@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
确保服务器的SSH配置文件/etc/ssh/sshd_config
中允许公钥登录:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
并确保以下配置项被禁用或设置为更安全的值:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
在服务器上重启SSH服务以应用更改:
sudo systemctl restart sshd
~/.ssh
目录权限为700
,~/.ssh/authorized_keys
文件权限为600
。~/.ssh
目录权限为700
,~/.ssh/authorized_keys
文件权限为600
。通过以上步骤,你应该能够在Linux系统中成功设置公钥登录。如果遇到任何问题,请检查相关日志文件(如/var/log/auth.log
或/var/log/secure
)以获取更多信息。
领取专属 10元无门槛券
手把手带您无忧上云