马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一、Linux 侧先把 SSH 装好
VS Code 远程开发的底层就是 SSH,所以第一件事不是在 Windows 上怎么点,而是让 Linux 能接受连接。默认端口是 22。
Ubuntu 上一般自带 OpenSSH 服务端,没有就装:
sudo apt-get update
sudo apt-get install openssh-server
sudo systemctl enable --now ssh
CentOS / Rocky / AlmaLinux 系用 yum:
sudo yum install openssh-server
sudo systemctl enable --now sshd
确认端口在听:
ss -lntp | grep :22
连不上先查这两处:云厂商安全组有没有放行 22,本机防火墙(ufw 或 firewalld)有没有拦。本地机器先自己测一把:
ssh 用户名@服务器IP
二、VS Code 装 Remote SSH 插件
打开 VS Code,用 Ctrl+Shift+P 唤出命令面板,搜「Configure Display Language」可以先切中文(已汉化可跳过)。然后点左侧扩展图标,搜 Remote-SSH 安装——这是微软官方插件,装完左下角会出现绿色远程图标。
配置连接信息,打开命令面板输入 Remote-SSH: Open Configuration File,选默认路径,加一段:
Host dev-linux
HostName 192.168.1.20
User ubuntu
Port 22
IdentityFile ~/.ssh/id_rsa
配好之后点左侧远程图标,选中 dev-linux 连接,弹出的新窗口里打开文件夹,就能像操作本地一样编辑远程文件,终端、调试、Git 全都在远程上跑。
三、免密登录怎么配
每次输密码很烦且影响自动化。做法是密钥登:
Windows 端(PowerShell)生成密钥,一路回车即可:
ssh-keygen -t rsa -b 4096
把公钥推到服务器:
ssh-copy-id 用户名@服务器IP
没装 ssh-copy-id 就手动拷:
type $env:USERPROFILE\.ssh\id_rsa.pub | ssh 用户名@服务器IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
服务端建议再收紧一点:/etc/ssh/sshd_config 里确认 PubkeyAuthentication yes,同时把 PasswordAuthentication 设成 no,密码登录一关,爆破就打不进来了。改完重启 sshd:
sudo systemctl restart sshd
四、实际开发中的几处优化
- 改端口:公司网络 22 常被封,装 SSH 时改个端口(如 2222),配置里
Port 2222 对应写进 hosts 段,别忘了同步安全组和 SELinux 端口登记。
- 稳定性:远程窗口挂久了断,在客户端配置加
ServerAliveInterval 30 和 ServerAliveCountMax 10 保活。
- 转发 GUI:远程跑图形程序,配
ForwardX11 yes 或走 X11 转发,比再开一层 VNC 省事。
- 端口转发:远程上的服务(比如 8080 的接口、数据库端口)用 VS Code 的端口转发直接映射到本地,浏览器
localhost 就能访问,不用再记一堆 ssh 隧道命令。
- 多机管理:hosts 段可以一次写好几台,用不同 Host 名区分,切换只点一下。
五、连不上的排查顺序
ssh: connect to host x port 22: Connection refused —— 服务没起,systemctl status ssh 看状态。
Connection timed out —— 网络或安全组,telnet IP 22 试通断。
- 能连上但认证失败 —— 密钥权限不对,服务器上
~/.ssh/authorized_keys 和 .ssh 目录不能是 777,标准权限是 700 和 600。
- 连上了但打开文件夹卡住 —— 多为远端缺
rsync 或磁盘挂载异常。
qidao123.com企服评测-应用市场 编辑提示
本文按 Ubuntu 与 CentOS 两类系统给出 SSH 服务安装、密钥免密登录、VS Code Remote-SSH 配置与常见连接故障顺序,命令均按 Linux 环境校验。生产环境建议关闭密码登录仅保留密钥,改端口时同步放行安全组与 SELinux。企业开发环境可用一套 hosts 模板集中管理多台机器,配合端口转发减少手工隧道操作。
|