如何在 Windows 上实现免密登录 Linux 服务器?

一、环境准备

  • 本地系统:Windows 10/11(需启用 OpenSSH 客户端)

  • 远程服务器:任意 Linux 发行版(需开启 SSH 服务)

  • 工具:系统自带 PowerShell 或 Git Bash(推荐)


二、操作步骤

步骤 1:在 Windows 上生成 SSH 密钥对

  1. 打开 PowerShell 或 Git Bash

    • Win + S 搜索 "PowerShell" 或安装 Git Bash

  2. 生成密钥对
    输入以下命令:

    ssh-keygen -t rsa -b 4096
    
    • -t rsa:指定密钥类型为 RSA

    • -b 4096:密钥长度(可选)

  3. 设置保存路径

    • 默认路径:C:\Users\你的用户名\.ssh\id_rsa

    • 直接回车使用默认路径,无需设置密码(连续按 3 次回车):

      Enter passphrase (empty for no passphrase): [直接回车]
      Enter same passphrase again: [直接回车]
      

    ssh-keygen 生成密钥示意图
    (配图说明:密钥生成过程的命令行截图)


步骤 2:将公钥上传到 Linux 服务器

方法一:通过 ssh-copy-id 自动上传(推荐)

  1. 执行以下命令(替换 用户名服务器IP):

    ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@服务器IP
    
  2. 输入服务器密码,公钥会自动添加到 ~/.ssh/authorized_keys

方法二:手动上传(适合无 ssh-copy-id 环境)

  1. 查看公钥内容

    cat ~/.ssh/id_rsa.pub
    

    复制输出内容(以 ssh-rsa AAAAB3... 开头)。

  2. 登录服务器并配置

    ssh 用户名@服务器IP
    mkdir -p ~/.ssh
    echo "粘贴你的公钥" >> ~/.ssh/authorized_keys
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    

     


步骤 3:验证免密登录

在 Windows 终端执行:

ssh 用户名@服务器IP
  • 成功标志:直接登录服务器,无需输入密码

  • 失败排查:检查服务器 .ssh 目录权限是否为 700authorized_keys 权限是否为 600


三、总结

通过 SSH 密钥对实现免密登录,既能提升操作效率,又比密码登录更安全。整个过程仅需 3 步:

  1. 生成密钥对

  2. 上传公钥到服务器

  3. 验证登录


附录

posted @ 2025-03-12 16:42  黄树瑜  阅读(223)  评论(0)    收藏  举报