售前咨询400-838-0503

Linux服务器如何配置SSH密钥登录?

发布:2025-04-25 02:45

Linux服务器SSH密钥登录配置全攻略

在Linux服务器管理中,SSH密钥登录比传统密码登录更安全、更方便。本文将详细介绍如何在Linux服务器上配置SSH密钥登录,帮助你告别繁琐的密码输入,提升服务器安全等级。

一、为什么要使用SSH密钥登录?

相较于传统密码登录,SSH密钥登录具有以下显著优势:

  • 更高的安全性:密钥比密码更难被暴力破解
  • 免密码登录:配置后无需每次输入密码
  • 便于自动化:适合脚本和自动化工具使用
  • 多账户管理:可为不同服务器配置不同密钥

二、生成SSH密钥对

在本地计算机上生成密钥对是第一步:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

执行上述命令后,系统会提示你:

  1. 选择密钥保存位置(默认~/.ssh/id_rsa)
  2. 设置密钥密码(可选,建议设置)

生成完成后,你将在~/.ssh目录下看到两个文件:

  • id_rsa - 私钥(必须妥善保管)
  • id_rsa.pub - 公钥(需上传到服务器)

三、将公钥上传到服务器

有多种方法可以将公钥上传到服务器:

方法1:使用ssh-copy-id工具

ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip

这是最简单的方法,会自动将公钥添加到服务器的~/.ssh/authorized_keys文件中。

方法2:手动复制

如果服务器没有ssh-copy-id工具,可以手动操作:

cat ~/.ssh/id_rsa.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

方法3:通过SFTP上传

使用SFTP客户端将公钥文件上传到服务器的~/.ssh目录,然后执行:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

四、服务器端配置

为确保安全,需要进行以下服务器配置:

  1. 设置正确的权限

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
  2. 修改SSH服务器配置:编辑/etc/ssh/sshd_config文件

    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    PasswordAuthentication no # 禁用密码登录(可选)
  3. 重启SSH服务

    sudo systemctl restart sshd

五、测试密钥登录

配置完成后,测试是否能正常登录:

ssh -i ~/.ssh/id_rsa username@server_ip

如果设置了密钥密码,会提示输入密钥密码而非服务器密码。

六、高级配置技巧

1. 多密钥管理

为不同服务器使用不同密钥:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/server1_key -C "server1专用密钥"

使用时指定密钥:

ssh -i ~/.ssh/server1_key user@server1

2. SSH配置文件简化

编辑~/.ssh/config文件:

Host myserver
    HostName server_ip
    User username
    IdentityFile ~/.ssh/id_rsa
    Port 22

配置后只需输入:

ssh myserver

3. 密钥代理

避免重复输入密钥密码:

eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa

七、常见问题解决

Q1: 连接被拒绝(Connection refused)
检查服务器SSH服务是否运行,防火墙是否放行22端口
Q2: 权限被拒绝(Permission denied)
检查authorized_keys文件权限是否为600,.ssh目录权限是否为700
Q3: 仍然要求输入密码
检查sshd_config中PubkeyAuthentication是否设为yes,是否重启了SSH服务

通过本文的详细指导,你应该已经成功配置了SSH密钥登录。密钥登录不仅能提高安全性,还能大大提升工作效率。建议在完成配置并确认密钥登录正常后,禁用密码登录以获得最高级别的安全保护。

记住永远不要将私钥分享给他人,并考虑定期更换密钥对以增强安全性。

按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。

提交工单