SSH密钥认证如何配置

550
2025/2/15 18:32:22
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

SSH密钥认证是一种安全的身份验证方法,它使用公钥和私钥对来进行身份验证。以下是配置SSH密钥认证的步骤:

在客户端生成密钥对

  1. 打开终端(Linux/Mac)或 命令提示符/PowerShell(Windows)。

  2. 输入以下命令生成一个新的SSH密钥对:

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    
    • -t rsa:指定密钥类型为RSA。
    • -b 4096:指定密钥长度为4096位。
    • -C "your_email@example.com":添加一个注释,通常是你的电子邮件地址。
  3. 按照提示操作,选择保存密钥的位置(默认是~/.ssh/id_rsa),并设置一个密码短语(可选但推荐)。

将公钥复制到服务器

  1. 使用ssh-copy-id命令将公钥复制到服务器:

    ssh-copy-id user@server_ip
    
    • user:服务器上的用户名。
    • server_ip:服务器的IP地址。
  2. 如果ssh-copy-id不可用,可以手动复制公钥:

    • 在客户端,找到生成的公钥文件(例如~/.ssh/id_rsa.pub)。
    • 登录到服务器,创建.ssh目录(如果不存在)并设置正确的权限:
      mkdir -p ~/.ssh
      chmod 700 ~/.ssh
      
    • 将公钥内容追加到服务器上的~/.ssh/authorized_keys文件中:
      echo "your_public_key" >> ~/.ssh/authorized_keys
      chmod 600 ~/.ssh/authorized_keys
      

配置服务器以使用密钥认证

  1. 编辑服务器上的SSH配置文件/etc/ssh/sshd_config

    sudo nano /etc/ssh/sshd_config
    
  2. 找到并修改以下行:

    PubkeyAuthentication yes
    
    • 确保PubkeyAuthentication设置为yes
  3. (可选)禁用密码认证以提高安全性:

    PasswordAuthentication no
    
  4. 保存并退出编辑器,然后重启SSH服务:

    sudo systemctl restart sshd
    

测试SSH密钥认证

  1. 从客户端尝试使用SSH连接到服务器:
    ssh user@server_ip
    
  2. 如果一切配置正确,你应该能够无需输入密码即可登录。

注意事项

  • 确保私钥文件(例如~/.ssh/id_rsa)的安全性,不要将其泄露给他人。
  • 定期更新密钥对,并在必要时重新配置服务器。
  • 如果使用的是Windows客户端,可以考虑使用PuTTY等工具生成和管理密钥对。

通过以上步骤,你应该能够成功配置SSH密钥认证,从而提高SSH连接的安全性和便利性。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: linux yum命令如何清理