跳转到主内容
极星编程网:以代码为星,赴技术山海!

VSCode怎么配置Raspberry Pi(树莓派)免密SSH远程开发环境

能直接免密连上树莓派的关键在于本地SSH配置与树莓派端公钥认证生效:需用ed25519算法生成密钥、正确配置~/.ssh/config、严格设置authorized_keys权限为600且属主为pi、确保sshd开启PubkeyAuthentication并禁用密码登录。 能直接免密连上树莓派,关键不在 VSCode 插件本身,而在本地 SSH 配置和树莓派端的公钥认证是否真正生效。 Remote-SSH 插件只是调用系统
ssh
命令,它不会帮你生成密钥、改权限或开服务——这些必须手动做对,否则插件再好也卡在密码提示里。 ssh-keygen 生成密钥时选什么算法? 别用默认的
rsa
(除非老系统兼容性要求高)。优先执行:
ssh-keygen -t ed25519 -C "pi@raspberrypi" -f ~/.ssh/id_ed25519
原因很实在:
ed25519
更快、更短、更安全,且现代树莓派 OS(Raspberry Pi OS Bullseye+、Ubuntu 22.04+)默认支持。如果生成后连接报
no mutual signature algorithm
,说明树莓派端
sshd
太旧,需升级或退回
-t rsa -b 4096
。
-C
后的注释建议写成
用户名@主机名
,方便多密钥管理 私钥文件名不要带空格或特殊字符,
id_ed25519
是最稳妥的命名 生成时不设 passphrase(直接回车),否则每次连接仍要输密码 ~/.ssh/config 里哪些字段不能少? VSCode 的 Remote-SSH 依赖这个配置文件识别连接参数。一个最小可用配置如下:
Host raspberrypi HostName 192.168.1.100 User pi IdentityFile ~/.ssh/id_ed25519 Compression yes ServerAliveInterval 60
注意几个硬性要求:
HostName
必须是 IP 或可解析的域名,不能是主机名(如
raspberrypi.local
在某些网络下不稳定)
IdentityFile
必须用绝对路径,Windows 用户写成
C:\Users\name\.ssh\id_ed25519
,且路径中不能有中文或空格 删掉
ForwardX11
相关项——X11 转发不是免密前提,加了反而可能因 Xming 未运行导致连接延迟或失败 不要在配置里写
PasswordAuthentication no
,那是服务端配置,客户端不认 树莓派端 authorized_keys 权限为什么总被拒绝? 这是最常踩的坑:SSH 服务对权限极其敏感,只要错一个数字就退回到密码登录。 在树莓派上执行以下三步,缺一不可: VSCode 1.118 微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。 下载 确保
~/.ssh
目录权限是
700
:
chmod 700 ~/.ssh
确保
~/.ssh/authorized_keys
权限是
600
:
chmod 600 ~/.ssh/authorized_keys
确认文件所有者是登录用户(比如
pi
),不是
root
:
ls -l ~/.ssh/authorized_keys
看输出第一列 如果用
ssh-copy-id
失败,手动复制更可靠:
cat ~/.ssh/id_ed25519.pub | ssh pi@192.168.1.100 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
然后立刻在树莓派上检查
/etc/ssh/sshd_config
是否含这两行且未被注释:
PubkeyAuthentication yes PasswordAuthentication no
改完必须重启服务:
sudo systemctl restart ssh
。 VSCode 连接时还弹密码框?先查这三件事 Remote-SSH 插件显示“正在连接…”但卡住,或弹出密码输入框,大概率不是插件问题: 本地终端执行
ssh raspberrypi
,看是否免密——如果终端也弹密码,说明 SSH 层没通,不用折腾 VSCode 检查 VSCode 左下角状态栏是否显示当前连接目标;如果显示的是
localhost
或其他 host,说明你点错了配置项 打开 VSCode 的 Remote-SSH 日志(命令面板 →
Remote-SSH: Show Log
),搜索
identity file
和
Permission denied
,能快速定位是密钥路径错还是权限错 真实情况往往是:本地密钥生成了、
config
写对了、树莓派
authorized_keys
也贴上了,但忘了
chmod 600
——这个数字权限差一点,SSH 就直接无视整条公钥。别跳过验证步骤,哪怕只多敲一行
ls -l ~/.ssh
。

相关文章