在 Win11 PowerShell 中通过 SSH 密钥实现无密码访问 Linux 服务器
要在 Win11 PowerShell 中配置无密码访问 Linux 服务器,核心是通过 SSH 密钥认证 实现(替代密码登录),无需安装额外工具(Win11 自带 OpenSSH 客户端)。以下是完整步骤:
前提条件
- Linux 服务器已开启 SSH 服务(默认端口 22,需确保防火墙放行 22 端口)。
在 Windows 11 PowerShell 环境下,利用 OpenSSH 客户端生成 RSA 密钥对,并通过手动复制公钥或 ssh-copy-id 命令将其部署至 Linux 服务器的完整流程。重点说明了私钥与公钥的保存位置、Linux 端 .ssh 目录及 authorized_keys 文件的权限设置(700 和 600),以及最终验证无密码登录的步骤。适用于需要自动化脚本或提升安全性的运维场景。
要在 Win11 PowerShell 中配置无密码访问 Linux 服务器,核心是通过 SSH 密钥认证 实现(替代密码登录),无需安装额外工具(Win11 自带 OpenSSH 客户端)。以下是完整步骤:
-t rsa:指定密钥类型为 RSA-b 4096:密钥长度,安全性更高Enter file in which to save the key → 密钥保存路径(默认 C:\Users\<用户名>\.ssh\id_rsa)Enter passphrase → 密钥密码(留空 = 无密码,直接回车)Enter same passphrase again → 再次确认密码(留空直接回车)C:\Users\<用户名>\.ssh\ 目录下会有 2 个文件:
id_rsa:私钥(本地保存,绝对不能泄露)id_rsa.pub:公钥(需要上传到 Linux 服务器)执行密钥生成命令:
ssh-keygen -t rsa -b 4096
推荐 2 种方法,优先用方法 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>
ssh-copy-id 不可用场景)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
在 Win11 PowerShell 中执行登录命令,无需输入密码即可成功连接:
ssh <linux 用户名>@<Linux 服务器 IP>
~/.ssh 目录权限必须是 700,authorized_keys 必须是 600,否则 SSH 会优先要求密码登录。sudo systemctl start sshd 启动服务,sudo systemctl enable sshd 设置开机自启。sudo ufw allow 22(UFW 防火墙)。
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online