IcyBlog IcyBlog

在Zed中连接到Github Codespace开始编码

2026-04-17 Zed GitHub Codespace 技术 841 5 分钟

前言

Zed前段时间送了学生认证的免费教育版,于是下了一个来试着用下。正好本人缺一个“小而美”的文本编辑器,而且对VSC的插件生态0依赖,也有点像尝试一下新东西,于是顺理成章的把Zed作为主力使用了。

很坏的,最近在使用GitHub codespace进行一些远程编码任务,很明显zed并不自带这玩意,于是我琢磨了一下如何在zed里使用GitHub codespace进行编码。理论上任何支持使用ssh进行远程开发的ide都能用同样的步骤实现同样的效果。

所需工具

1.本机有配置好能正常使用的openssh-client 2.确保本地的网络能连上workspace机器的ssh 3.准备就绪的GitHub Codespace实例

安装GitHub-cli

我们需要借助GitHub-cli来配置我们本地的ssh客户端,用于对codespace机器ssh的连接。

macOS,使用Homebrew安装

brew install gh

Linux

Debian / Ubuntu

apt install gh

Fedora / CentOS / RHEL

sudo dnf install 'dnf-command(config-manager)'
sudo dnf config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo
sudo dnf install gh

Arch Linux

sudo pacman -S github-cli

Windows 使用Winget与scoop

winget:

winget install --id GitHub.cli

scoop

scoop install gh

安装好后验证安装:

gh --version

接着登录GitHub Cli

gh auth login

按照提示依次选择:

? What account do you want to log into?  → GitHub.com
? What is your preferred protocol for Git operations?  → HTTPS或SSH
? How would you like to authenticate GitHub CLI?  → Login with a web browser

选择浏览器登录后,终端会显示一个一次性验证码,浏览器自动打开GitHub授权页面,粘贴验证码并点击授权即可

登录完成后,补充申请 Codespace 所需的权限,

gh auth refresh -h github.com -s codespace

验证登录状态

gh auth status

预期输出(以我自己的为例)

icymichiko@IcyMichikodeMBP ~ % gh auth status
github.com
 Logged in to github.com account IcyBlue17 (keyring)
  - Active account: true
  - Git operations protocol: ssh
  - Token: gho_************************************
  - Token scopes: 'admin:public_key', 'codespace', 'gist', 'read:org', 'repo'
icymichiko@IcyMichikodeMBP ~ % 

使用GitHub cli配置ssh

使用GitHub cli生成ssh配置文件并写入你的本地ssh配置

gh codespace ssh --config >> ~/.ssh/config

这会把当前你账号下所有Codespace实例的SSH配,包含Host、ProxyCommand、认证信息等追加到你的本地SSH配置文件。

之后可以cat一下你的config,并把他的主机名复制下来直接用ssh连接就行,使用gh cs list可以查看你账号下所有codespace实例的情况, CSlist

需要注意的是,只有处于开启状态下的codespace实例才能被ssh连接,即STATE为Available的。

ssh [hostname]

使用这条命令就可以连接到你开启的codespace实例了

需要注意的是,Codespace每次重建后Host名称可能变化,需要重新运行一次 —config

要是过段时间他关掉了怎么办?

使用gh cs ssh即可连接到实例并唤醒,唤醒后重新ssh即可。建议每次开工前都手工gh cs ssh来激活一次实例 CSwake

使用Zed连接到codespace

首先确保你本地ssh客户端能直接 ssh 主机名 来连上实例 非常简单,打开zed,在file-openremote中添加你的codespace主机名

zed1

zed2

这时候他会出现在Remote Projects中, zed3

点击Openfloder,全部删掉,输入/workspaces/你的项目名即可(直接输入/workspaces他在底下也会自动列出来项目的) zed3

然后enjoy吧~