参考教程

vscode连接远程服务器(傻瓜式教学)
vscode通过ssh连接服务器实现免密登录+删除(吐血总结)
解决Ubuntu中conda:command not found的问题

一、连接步骤

1.下载扩展 Remote-SSH

2. 添加服务器连接配置

服务器上复制的校园网路径

ssh XXX@10.164.107.157 -p 20024 

在这里插入图片描述
配置会保存到C:\Users\xxx\.ssh\config 里面

Host 10.164.107.157
  HostName 10.164.107.157
  User root		#连接的用户可以改成root,后面出现权限问题很麻烦
  Port 20024
  1. 连接输入密码
    在这里插入图片描述

二、VSCode SSH免密登录步骤

免密登录核心是通过「RSA密钥对」验证身份,本地保存私钥,服务器保存公钥,无需输入密码即可连接。

步骤1:本地生成RSA密钥对

  1. 打开VSCode终端(或Windows CMD/PowerShell),执行命令生成密钥:
    ssh-keygen -t rsa
    
  2. 终端提示「Enter file in which to save the key」:
    直接按回车(默认保存路径:C:\Users\timi\.ssh\id_rsa,私钥id_rsa,公钥id_rsa.pub)。
  3. 提示「Enter passphrase (empty for no passphrase)」:
    • 直接按回车(无需密码,简化登录;若需更高安全,可设置密码短语,每次登录需输入)。
    • 再次按回车确认,密钥对生成完成。
      在这里插入图片描述
      生成的公钥私钥文件在这里插入图片描述

步骤2:上传本地公钥到远程服务器

需将本地公钥(id_rsa.pub)上传到远程服务器的~/.ssh/authorized_keys文件中(该文件存储允许免密登录的公钥)。

登录远程服务器,将公钥内容追加到authorized_keys

# 登录远程服务器
ssh root@10.164.107.157  # 输入密码
# 进入.ssh目录,若不存在则创建
mkdir -p ~/.ssh  # -p确保目录存在,避免报错
cd ~/.ssh
# 创建 authorized_keys 文件
touch authorized_keys
 # 要先把id_rsa.pub上传到服务器
# 将公钥追加到authorized_keys(避免覆盖已有公钥)
cat id_rsa.pub >> authorized_keys
# 删除上传的公钥文件(可选,清理冗余)
rm -f id_rsa.pub

步骤3:验证免密登录

看连接还要不要密码

关键注意事项

  1. 私钥安全:本地私钥id_rsa不可泄露(相当于“数字钥匙”),避免复制到公共设备或网络。
  2. 权限严格性:本地.ssh/config、远程.ssh/authorized_keys.ssh目录的权限必须符合SSH要求(Windows下仅当前用户访问,Linux下700/600权限),否则会触发安全校验失败。
  3. 多用户切换:远程服务器若切换root用户,需重新配置root.ssh/authorized_keys(或通过sudo执行命令),避免权限混淆。
  4. 连接卡住处理:若连接时卡在「Downloading VS Code Server」,执行Ctrl+Shift+P → 输入「Reload Window」重新加载窗口,或检查网络是否稳定。

三、VSCode SSH连接服务器问题及解决方案

个人出现的一些问题。有些原因是因为连接的用户权限的问题,用root用户好些。
包括自带的conda环境用root用户没问题,用其他用户要配权限

问题1:SSH config文件权限错误(提示“UNKNOWN\UNKNOWN用户”)

现象

连接时终端报错:
Bad permissions. Try removing permissions for user: UNKNOWN\\UNKNOWN (S-1-5-21-xxx) on file C:/Users/timi/.ssh/config
Bad owner or permissions on C:\\Users\\timi/.ssh/config

原因

Windows下.ssh/config文件权限过宽(存在非当前用户的访问权限),SSH协议对配置文件权限要求严格,禁止其他用户读写。

解决步骤
  1. 打开文件资源管理器,进入路径 C:\Users\用户名\.ssh\,右键 config 文件 → 选择「属性」→ 切换到「安全」选项卡。
  2. 点击「高级」→ 「禁用继承」→ 在弹出窗口选择「从此对象中删除所有继承的权限」→ 点击「确定」。
  3. 删除所有多余用户(如 EveryoneAdministratorsUNKNOWN 账户),仅保留当前用户(格式:DESKTOP-XXX\用户名)。
  4. 确保当前用户权限勾选「读取」「写入」「读取和执行」→ 依次点击「确定」保存。

问题2:远程服务器创建.vscode-server权限不足

现象

连接时终端报错:
mkdir: cannot create directory '/remote-home/XXX/.vscode-server': Permission denied
Creating the server install dir failed...

原因

远程用户 XXX 对自己的家目录(/remote-home/XXX/)没有「写入权限」,VSCode无法创建必要的服务器端文件。

解决步骤
  1. 本地打开CMD/PowerShell,先通过密码登录远程服务器:
    ssh XXX@10.164.107.157  # 输入XXX的密码
    
  2. 切换到 root 用户(需root密码),修改家目录权限:
    su root  # 输入root密码
    chown -R XXX:XXX/remote-home/XXX/  # 确保所有者是XXX
    chmod 755 /remote-home/XXX/  # 赋予写入权限
    
  3. 退出root,验证权限:
    su - XXX
    ls -ld /remote-home/XXX/  # 输出应显示 drwxr-xr-x XXX XXX
    
  4. 重启VSCode重新连接,即可正常创建.vscode-server

问题3:Windows PowerShell禁止运行脚本(无法加载profile.ps1)

现象

在VSCode终端执行conda initconda activate时报错:
无法加载文件 C:\Users\XXX\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本

原因

Windows PowerShell默认执行策略为Restricted(禁止运行任何脚本),导致Conda初始化脚本无法加载。

解决步骤
  1. 右键点击「开始菜单」→ 选择「Windows PowerShell (管理员)」。
  2. 执行命令修改执行策略(允许本地脚本运行):
    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. 出现提示时输入 Y 确认,关闭PowerShell。
  4. 重启VSCode终端,脚本可正常运行。

Zsh提示词显示修改

前缀显示看着不舒服,可以从
在这里插入图片描述
变成
在这里插入图片描述

# 1. 打开配置文件
vim ~/.zshrc
# 2. 按i进入编辑,添加
# 永久自定义 Zsh 提示符(无箭头,显示 Conda 环境、用户名、主机名、路径)
PROMPT='(%{%F{green}%}${CONDA_DEFAULT_ENV}%{%f%}) %{%F{blue}%}%n@%m%{%f%}:%{%F{yellow}%}%~%{%f%} # '
# 3. 按Esc,输入:wq保存,执行生效
source ~/.zshrc
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐