要通过 VSCode 远程连接到 CentOS 7、Ubuntu 18 这种较老的 Linux 系统,可以参考以下详细步骤和注意事项,帮你顺利配置和使用。
目录
- 准备条件
- 安装 SSH 服务端
- 配置 SSH 服务
- 配置防火墙和端口转发
- VSCode 远程插件安装与使用
- 常见问题排查
1️⃣ 准备条件
- 远程服务器(CentOS7、Ubuntu18 等)已经能正常开机,且能访问网络
- 你的本地电脑安装了最新版本的 VSCode
- 有远程服务器的 SSH 登录账号和密码或私钥
2️⃣ 在远程服务器安装 SSH 服务
CentOS7
sudo yum install -y openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
Ubuntu18
sudo apt update
sudo apt install -y openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh
3️⃣ 配置 SSH 服务
编辑 SSH 配置文件,确保允许密码登录(如果使用密码)或允许公钥认证。
sudo nano /etc/ssh/sshd_config
确认以下配置(根据实际需要修改):
PasswordAuthentication yes # 如果你用密码登录,设置为 yes
PermitRootLogin no # 安全起见,建议关闭 root 远程登录
PubkeyAuthentication yes # 启用公钥认证
保存并重启 SSH 服务:
sudo systemctl restart sshd # CentOS7
sudo systemctl restart ssh # Ubuntu18
4️⃣ 配置防火墙和端口转发
确保服务器的 22 端口(或你自定义的 SSH 端口)对外开放。
CentOS7 防火墙配置(firewalld)
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
Ubuntu18 防火墙配置(ufw)
sudo ufw allow ssh
sudo ufw enable
5️⃣ VSCode 远程插件安装与使用
5.1 安装插件
- 打开 VSCode
- 进入扩展(Extensions)视图(快捷键 Ctrl+Shift+X)
- 搜索并安装 Remote – SSH 插件(由 Microsoft 官方发布)
5.2 配置 SSH 连接
- 打开命令面板(Ctrl+Shift+P)
- 输入并选择
Remote-SSH: Open SSH Configuration File...
- 选择你对应的 SSH 配置文件(一般是
~/.ssh/config
) - 在文件末尾添加服务器配置:
Host myserver
HostName your.server.ip.or.domain
User your_ssh_user
Port 22
IdentityFile ~/.ssh/id_rsa # 如果用密钥登录,指定私钥路径
# 如果使用密码登录,可以不写 IdentityFile
5.3 连接服务器
- 再次打开命令面板,选择
Remote-SSH: Connect to Host...
- 选择刚才配置的
myserver
- 首次连接时会提示是否信任主机,选择信任
- 输入密码或使用密钥完成登录
VSCode 会自动安装远程服务器端的依赖,并打开远程工作区。
6️⃣ 常见问题及解决方案
问题 | 解决方案 |
---|---|
VSCode 连接失败,提示 SSH 连接超时 | 检查服务器 SSH 服务是否启动,网络是否通畅,防火墙是否开放端口 |
登录时提示权限不足 | 检查远程账户是否有权限,避免用 root 登录或使用 sudo 提权 |
公钥认证失败 | 确认公钥是否正确添加到服务器 ~/.ssh/authorized_keys 文件中,权限设置正确 |
VSCode 远程插件无法安装或启动 | 远程服务器需要安装 curl、tar 等基础工具,建议先执行 sudo apt install curl tar -y |
连接后无法正常打开文件或权限问题 | 确认文件权限和用户身份,必要时调整文件夹权限 |
额外建议
- 升级系统软件包,避免老系统因依赖缺失导致插件安装失败:
sudo apt update && sudo apt upgrade -y # Ubuntu18
sudo yum update -y # CentOS7
- 使用 SSH 密钥登录,避免密码安全风险。生成密钥:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
ssh-copy-id user@server_ip
如果你需要,我还可以帮你写针对某一系统的自动化脚本配置,或者教你 VSCode 远程开发中更高级的调试和容器配合使用,随时告诉我!
发表回复