> ## Documentation Index
> Fetch the complete documentation index at: https://docs.siflow.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# VS Code Server

<Tip>
  支持用户基于 SSH 公钥，通过 SSH 从本地访问 pod 进行开发。
</Tip>

### 使用 Web Code Server

Code Server 官方教程 [code server](https://coder.com/docs/tutorials/quickstart)
如上所述，使用 VsCode 需要安装相关软件包，这些操作需要在镜像内执行。此处请注意，目前暂不支持基于 conda 的 Python 运行环境。如果你使用了它，请将 Python 执行环境复制或链接到 /usr/bin 或 /usr/local/bin

```Bash theme={null}
curl -fsSL https://code-server.dev/install.sh | sh
```

1. 进入开发环境 - VSCS 页面，点击新建，选择 VSCS 作为访问方式。

   <img src="https://mintcdn.com/siflow/MD6YC9TIaGxx7fBG/siverse/develop/media/develop-web-overview.png?fit=max&auto=format&n=MD6YC9TIaGxx7fBG&q=85&s=131e1a1d7003a7ea3a8f9cab92befc56" alt="图片" width="3840" height="2040" data-path="siverse/develop/media/develop-web-overview.png" />

2. 此处的扩展目录指的是 VSCode 中安装的各种插件的存储路径。建议将它们安装到 /xxx/.vscode/extensions 这种路径格式下。系统会默认提供一个插件路径，但关闭后可能会丢失。

   <img src="https://mintcdn.com/siflow/MD6YC9TIaGxx7fBG/siverse/develop/media/develop-web-extensions.png?fit=max&auto=format&n=MD6YC9TIaGxx7fBG&q=85&s=99517b9133523531d6320008379ad584" alt="图片" width="3840" height="2040" data-path="siverse/develop/media/develop-web-extensions.png" />

3. 如何使用 code server：进入、打开、监控等操作通过列表右侧的操作菜单执行。点击“打开”会跳转到 vscode 页面。

   <img src="https://mintcdn.com/siflow/MD6YC9TIaGxx7fBG/siverse/develop/media/develop-web-list.png?fit=max&auto=format&n=MD6YC9TIaGxx7fBG&q=85&s=9070c63bbee8a48523f2834d81c91b5d" alt="图片" width="3840" height="2040" data-path="siverse/develop/media/develop-web-list.png" />

4. code server 界面如下所示：

   <img src="https://mintcdn.com/siflow/MD6YC9TIaGxx7fBG/siverse/develop/media/develop-web-code-server.png?fit=max&auto=format&n=MD6YC9TIaGxx7fBG&q=85&s=e07a2192ac3b2b2d9afe2a0654eb734d" alt="图片" width="2000" height="997" data-path="siverse/develop/media/develop-web-code-server.png" />

### 以 SSH 模式创建实例

1. 进入开发环境 - VSCS 页面，点击新建

   <img src="https://mintcdn.com/siflow/MD6YC9TIaGxx7fBG/siverse/develop/media/develop12.png?fit=max&auto=format&n=MD6YC9TIaGxx7fBG&q=85&s=d4941a1d42dd3a2f6210f0d5f060d1ff" alt="图片" width="3840" height="2040" data-path="siverse/develop/media/develop12.png" />

2. 选择 SSH 作为访问方式并配置公钥。

   ```Bash theme={null}
   # generate ssh key
   ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""
   cat ~/.ssh/id_rsa.pu
   ```

   <img src="https://mintcdn.com/siflow/MD6YC9TIaGxx7fBG/siverse/develop/media/develop13.png?fit=max&auto=format&n=MD6YC9TIaGxx7fBG&q=85&s=22eb56eb77682333e9ca3d3d7bfe8cab" alt="图片" width="3840" height="2040" data-path="siverse/develop/media/develop13.png" />

3. 配置存储挂载（可选），选择资源实例，完成后点击新建。

   <img src="https://mintcdn.com/siflow/MD6YC9TIaGxx7fBG/siverse/develop/media/develop14.png?fit=max&auto=format&n=MD6YC9TIaGxx7fBG&q=85&s=a4062ecc1670cd98083cdc24fc050d10" alt="图片" width="3840" height="2040" data-path="siverse/develop/media/develop14.png" />

### 访问 SSH 实例

1. 创建完成后，在列表页找到对应实例并点击打开。

   <img src="https://mintcdn.com/siflow/MD6YC9TIaGxx7fBG/siverse/develop/media/develop15.png?fit=max&auto=format&n=MD6YC9TIaGxx7fBG&q=85&s=bac4ad87c048193b04ae8c858fae1672" alt="图片" width="3840" height="2040" data-path="siverse/develop/media/develop15.png" />

2. 点击“打开”后，你可以获取对应的访问命令，并得到 SSH 连接 IP 与端口。

   <img src="https://mintcdn.com/siflow/MD6YC9TIaGxx7fBG/siverse/develop/media/develop16.png?fit=max&auto=format&n=MD6YC9TIaGxx7fBG&q=85&s=b3c509d9cd4f6f2855d192986c69b9c6" alt="图片" width="3840" height="2040" data-path="siverse/develop/media/develop16.png" />

### 问答

1. SSH 连接时出现 "remote host identification has changed" 的问题

   <img src="https://mintcdn.com/siflow/MD6YC9TIaGxx7fBG/siverse/develop/media/develop18.jpg?fit=max&auto=format&n=MD6YC9TIaGxx7fBG&q=85&s=bffed449662346e61bc8d214a6bf609c" alt="图片" width="1500" height="506" data-path="siverse/develop/media/develop18.jpg" />

   **如何修复：**

   `ssh-keygen -R [ip]:port`

### 在 VSCS 中持久化安装 Python 库

1. 配置持久化目录

2. 将 pip 安装位置设置为持久化目录

   `pip config set global.target /volume/test/pkg`

   `pip -v config list`

   <img src="https://mintcdn.com/siflow/MD6YC9TIaGxx7fBG/siverse/develop/media/develop17.png?fit=max&auto=format&n=MD6YC9TIaGxx7fBG&q=85&s=81e3f5822370a2dd8fe353d7186c4ec7" alt="图片" width="850" height="220" data-path="siverse/develop/media/develop17.png" />

3. 指定 Python 导入路径

   `PYTHONPATH=/volume/test/pkg:$PYTHONPATH`
