跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PowerShell

Win11 PowerShell 配置 SSH 密钥实现无密码访问 Linux 服务器

在 Windows 11 PowerShell 环境下,利用 OpenSSH 客户端生成 RSA 密钥对,并通过手动复制公钥或 ssh-copy-id 命令将其部署至 Linux 服务器的完整流程。重点说明了私钥与公钥的保存位置、Linux 端 .ssh 目录及 authorized_keys 文件的权限设置(700 和 600),以及最终验证无密码登录的步骤。适用于需要自动化脚本或提升安全性的运维场景。

片刻发布于 2026/3/24更新于 2026/10/21123 浏览

在 Win11 PowerShell 中通过 SSH 密钥实现无密码访问 Linux 服务器

要在 Win11 PowerShell 中配置无密码访问 Linux 服务器,核心是通过 SSH 密钥认证 实现(替代密码登录),无需安装额外工具(Win11 自带 OpenSSH 客户端)。以下是完整步骤:

前提条件

  1. Linux 服务器已开启 SSH 服务(默认端口 22,需确保防火墙放行 22 端口)。
  2. Win11 已启用 OpenSSH 客户端:
    • 打开「设置」→「应用」→「可选功能」→ 查看是否有 OpenSSH 客户端,无则点击「添加功能」安装。

步骤 1:在 Win11 PowerShell 生成 SSH 密钥对

  1. 以管理员身份打开 PowerShell(右键开始菜单 → 选择 Windows PowerShell (管理员))。
    • -t rsa:指定密钥类型为 RSA
    • -b 4096:密钥长度,安全性更高
  2. 命令执行后会出现 3 次提示,全部按回车默认配置:
    • 提示 1:Enter file in which to save the key → 密钥保存路径(默认 C:\Users\<用户名>\.ssh\id_rsa)
    • 提示 2:Enter passphrase → 密钥密码(留空 = 无密码,直接回车)
    • 提示 3:Enter same passphrase again → 再次确认密码(留空直接回车)
  3. 生成成功后,C:\Users\<用户名>\.ssh\ 目录下会有 2 个文件:
    • id_rsa:私钥(本地保存,绝对不能泄露)
    • id_rsa.pub:公钥(需要上传到 Linux 服务器)

执行密钥生成命令:

ssh-keygen -t rsa -b 4096 

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

推荐 2 种方法,优先用方法 1(更便捷)。

方法 1:用 ssh-copy-id 自动上传(推荐)
  • 示例:ssh-copy-id -i C:\Users\<用户名>\.ssh\id_rsa.pub [email protected]

首次执行会提示确认服务器指纹,输入 yes 回车,然后输入 Linux 服务器的密码,回车后公钥会自动上传到 Linux 服务器的 ~/.ssh/authorized_keys 文件中。

在 PowerShell 中执行以下命令,替换为你的 Linux 服务器信息:

ssh-copy-id -i C:\Users\<用户名>\.ssh\id_rsa.pub <linux 用户名>@<Linux 服务器 IP>
方法 2:手动复制公钥(备用,适用于 ssh-copy-id 不可用场景)
  1. 在 Win11 中打开 C:\Users\<用户名>\.ssh\id_rsa.pub 文件,。
全选复制所有内容

登录 Linux 服务器(用密码登录),执行以下命令:

# 1. 创建 .ssh 目录(确保存在)
mkdir -p /root/.ssh

# 2. 设置目录权限(必须为 700,SSH 认证的关键)
chmod 700 /root/.ssh

# 3. 将你的公钥写入 authorized_keys 文件(直接复制这条,公钥已完整填入)
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCX1p8u+W6ubDeDjEdQPzGfKuH4fIA2Kxh4wQC1MZH2iOS4vHzUxt2IYRbVcDkBR2JjDVRUX9D7cGWtfPUdrRm2Rl6gAT6Fve6dAKnpHT5iZgL7Fsxbs1I6MUT51DODCLtFOAUkrwkCdG7fdKCLfKkvGj0Lm82WqHg+qHOjSQp3lSGDYxPUIbXX9zyji/WR4ZJb4oXYRiBma0wya+zUwRv14okvfqR5VO+LHU9VXX/0OTru8EUhdp3STCs5xgHiQ7jj3Kw3pbDaE/q/t0bquijdJvWu3X00cnhrWVLdnd4IdmbcIf3Khh6rapHkUvyx/bsq2YFijdRDZ/xlMcOl9DuwtwUbJjkZ6AnBJ1dXkFlZbWDLsOziZ9+DUhNWXEzvxtjFb/IhruulOq9sSvREOPp97KKlFSjByarN8u0T2yHS+5CNR7RkCVHGi3ZVbu5OtQzH7qVVbiSDOE34sM78M6dJuNKhn55IulUFZ3gS/Jj1+uFzPBHN/A8sl/OKkfmqdnifirouE1KxC6lUtGHr23ULsi2TZ1a67l82n4JA9b6OSpYPg2tPGt7eJY3kz/i5/WpCAf5ZTlNzUDStfZfDidjZMxSMgRxs+dqn50RtIgkxUnVL2QUxnjXo9NxuHFTqROMsXxucaOZwnbY8UBzJZBLZLFneSgpC9U1UvWMrtsshbw== <用户名>@<主机名>" >> /root/.ssh/authorized_keys

# 4. 设置文件权限(必须为 600,否则密钥认证失效)
chmod 600 /root/.ssh/authorized_keys

步骤 3:测试无密码登录

在 Win11 PowerShell 中执行登录命令,无需输入密码即可成功连接:

ssh <linux 用户名>@<Linux 服务器 IP>

常见问题排查

  1. 权限错误:Linux 服务器的 ~/.ssh 目录权限必须是 700,authorized_keys 必须是 600,否则 SSH 会优先要求密码登录。
  2. SSH 服务未开启:Linux 服务器执行 sudo systemctl start sshd 启动服务,sudo systemctl enable sshd 设置开机自启。
  3. 防火墙拦截:Linux 服务器放行 22 端口,例如 sudo ufw allow 22(UFW 防火墙)。

目录

  1. 在 Win11 PowerShell 中通过 SSH 密钥实现无密码访问 Linux 服务器
  2. 前提条件
  3. 步骤 1:在 Win11 PowerShell 生成 SSH 密钥对
  4. 步骤 2:将公钥上传到 Linux 服务器
  5. 方法 1:用 ssh-copy-id 自动上传(推荐)
  6. 方法 2:手动复制公钥(备用,适用于 ssh-copy-id 不可用场景)
  7. 1. 创建 .ssh 目录(确保存在)
  8. 2. 设置目录权限(必须为 700,SSH 认证的关键)
  9. 3. 将你的公钥写入 authorized_keys 文件(直接复制这条,公钥已完整填入)
  10. 4. 设置文件权限(必须为 600,否则密钥认证失效)
  11. 步骤 3:测试无密码登录
  12. 常见问题排查

更多推荐文章

查看全部
  • Git 与 TortoiseGit 详细安装及使用指南
  • 计算机网络基础定义与资源交换机制
  • Spring Boot @ResponseBody 注解原理与实战详解
  • OpenClaw 配置与 QQ Bot 接入指南
  • AI 鸿蒙 App 开发:从页面到能力系统的架构变革
  • C++ 关联式容器核心解析:map 与 set 实战指南
  • Linux 进程间通信之命名管道(FIFO)实战与面向对象封装
  • ClawdBot 安装指南:从零搭建本地 AI 助手
  • VSCode Copilot 配置使用 DeepSeek 模型指南
  • Cursor、Windsurf、Kiro、Zed、VS Code 等 AI 编程工具定价对比
  • 网络安全十大热门岗位详解与职业发展路径分析
  • 2025 年 12 月 GESP CCF 编程能力等级认证 C++ 六级真题
  • 大语言模型 LoRA 微调实战指南
  • 无线联邦学习:隐私保护下的分布式 AI 协同训练
  • 递归算法实战:汉诺塔与合并有序链表详解
  • Java核心语法:从变量到流程控制
  • Android 使用 ViewPager 实现自动无限轮播图
  • 傅里叶变换:FFT 与 DFT 原理及算法详解
  • Web 安全 Shell 注入与成绩查询漏洞解析
  • 为什么要做大语言模型:技术原理与行业价值深度解析

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online