VSCode SSH连接服务器:连接 + 免密登录 + 遇到的问题
参考教程
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
- 连接输入密码

二、VSCode SSH免密登录步骤
免密登录核心是通过「RSA密钥对」验证身份,本地保存私钥,服务器保存公钥,无需输入密码即可连接。
步骤1:本地生成RSA密钥对
- 打开VSCode终端(或Windows CMD/PowerShell),执行命令生成密钥:
ssh-keygen -t rsa - 终端提示「Enter file in which to save the key」:
直接按回车(默认保存路径:C:\Users\timi\.ssh\id_rsa,私钥id_rsa,公钥id_rsa.pub)。 - 提示「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:验证免密登录
看连接还要不要密码
关键注意事项
- 私钥安全:本地私钥
id_rsa不可泄露(相当于“数字钥匙”),避免复制到公共设备或网络。 - 权限严格性:本地
.ssh/config、远程.ssh/authorized_keys和.ssh目录的权限必须符合SSH要求(Windows下仅当前用户访问,Linux下700/600权限),否则会触发安全校验失败。 - 多用户切换:远程服务器若切换
root用户,需重新配置root的.ssh/authorized_keys(或通过sudo执行命令),避免权限混淆。 - 连接卡住处理:若连接时卡在「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/configBad owner or permissions on C:\\Users\\timi/.ssh/config
原因
Windows下.ssh/config文件权限过宽(存在非当前用户的访问权限),SSH协议对配置文件权限要求严格,禁止其他用户读写。
解决步骤
- 打开文件资源管理器,进入路径
C:\Users\用户名\.ssh\,右键config文件 → 选择「属性」→ 切换到「安全」选项卡。 - 点击「高级」→ 「禁用继承」→ 在弹出窗口选择「从此对象中删除所有继承的权限」→ 点击「确定」。
- 删除所有多余用户(如
Everyone、Administrators、UNKNOWN账户),仅保留当前用户(格式:DESKTOP-XXX\用户名)。 - 确保当前用户权限勾选「读取」「写入」「读取和执行」→ 依次点击「确定」保存。
问题2:远程服务器创建.vscode-server权限不足
现象
连接时终端报错:mkdir: cannot create directory '/remote-home/XXX/.vscode-server': Permission deniedCreating the server install dir failed...
原因
远程用户 XXX 对自己的家目录(/remote-home/XXX/)没有「写入权限」,VSCode无法创建必要的服务器端文件。
解决步骤
- 本地打开CMD/PowerShell,先通过密码登录远程服务器:
ssh XXX@10.164.107.157 # 输入XXX的密码 - 切换到
root用户(需root密码),修改家目录权限:su root # 输入root密码 chown -R XXX:XXX/remote-home/XXX/ # 确保所有者是XXX chmod 755 /remote-home/XXX/ # 赋予写入权限 - 退出root,验证权限:
su - XXX ls -ld /remote-home/XXX/ # 输出应显示 drwxr-xr-x XXX XXX - 重启VSCode重新连接,即可正常创建
.vscode-server。
问题3:Windows PowerShell禁止运行脚本(无法加载profile.ps1)
现象
在VSCode终端执行conda init或conda activate时报错:无法加载文件 C:\Users\XXX\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本
原因
Windows PowerShell默认执行策略为Restricted(禁止运行任何脚本),导致Conda初始化脚本无法加载。
解决步骤
- 右键点击「开始菜单」→ 选择「Windows PowerShell (管理员)」。
- 执行命令修改执行策略(允许本地脚本运行):
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser - 出现提示时输入
Y确认,关闭PowerShell。 - 重启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
更多推荐
所有评论(0)