gh codespace ssh
gh codespace ssh [<flags>...] [-- <ssh-flags>...] [<command>]
ssh
命令用于 SSH 到代码空间。 在最简单的情况下,你可以运行 gh cs ssh
,交互式地选择一个代码空间,然后连接。
ssh
命令会自动在 ~/.ssh
目录中创建一对公钥/私钥,如果你没有现有的有效密钥对。 当选择要使用的密钥对时,优先顺序是
- 由
-i
在<ssh-flags>
中指定的密钥 - 自动密钥,如果它已经存在
- ssh 配置中的第一个有效密钥对(根据
ssh -G
) - 自动密钥,新创建的
ssh
命令还支持使用 --config
选项与 OpenSSH 进行更深入的集成,该选项会生成 OpenSSH 格式的每个代码空间 ssh 配置。 将此配置包含在你的 ~/.ssh/config
中,可以改善与 OpenSSH 集成的工具的用户体验,例如 Bash/Zsh 的 ssh 主机名补全、scp/rsync/sshfs
的远程路径补全、git
ssh 远程等。
设置好之后(参见下面的第二个示例),你可以像访问普通远程主机一样 ssh 到代码空间(使用 ssh
,而不是 gh cs ssh
)。
请注意,你连接到的代码空间必须预先安装 SSH 服务器。 如果用于代码空间的 Docker 镜像没有 SSH 服务器,请在你的 Dockerfile
中安装它,或者对于使用基于 Debian 的镜像的代码空间,你可以将以下内容添加到你的 devcontainer.json
中
"features": {
"ghcr.io/devcontainers/features/sshd:1": {
"version": "latest"
}
}
选项
-c
,--codespace <string>
- 代码空间的名称
-
--config
- 将 OpenSSH 配置写入标准输出
-d
,--debug
- 将调试数据记录到文件
-
--debug-file <string>
- 要记录到的文件路径
-
--profile <string>
- 要使用的 SSH 配置文件的名称
-R
,--repo <string>
- 按仓库名称(用户/仓库)过滤代码空间选择
-
--repo-owner <string>
- 按仓库所有者(用户名或组织)过滤代码空间选择
-
--server-port <int> (默认 0)
- SSH 服务器端口号(0 => 选择未使用的端口)