解锁VSCode新姿势:SSH远程服务器连接全攻略

引言

在现代软件开发中,远程开发已成为一种常见的工作模式。当我们需要在远程服务器上进行代码编写、调试和运行时,如何高效地连接和操作远程服务器就显得尤为重要。Visual Studio Code(简称 vscode)作为一款功能强大且广受欢迎的代码编辑器,通过连接 ssh 远程服务器,能让我们在本地轻松访问和管理远程服务器上的文件,就像操作本地文件一样便捷。这种方式不仅提高了开发效率,还能充分利用远程服务器的计算资源,避免因本地环境限制带来的困扰。接下来,我将详细介绍 vscode 连接 ssh 远程服务器的具体步骤,无论是新手还是有一定经验的开发者,都能通过本文轻松掌握这一实用技能。

前期准备

安装 VSCode

  1. 首先,访问 VSCode 的官方网站:Visual Studio Code - Code Editing. Redefined
  1. 根据你的操作系统选择对应的安装包,Windows 系统一般选择.exe格式的安装文件,macOS 选择.zip或.dmg文件,Linux 系统则根据具体发行版选择.deb(如 Debian、Ubuntu)或.rpm(如 Red Hat、Fedora)等格式。
  1. 下载完成后,运行安装程序,按照安装向导的提示进行操作,如接受许可协议、选择安装路径、创建桌面快捷方式等,即可完成安装。安装过程中可能会遇到下载速度慢的问题,可以复制下载链接,将az764295.vo.msecnd.net改为vscode.cdn.azure.cn,使用国内镜像加速下载。

安装 Remote - SSH 插件

  1. 打开 VSCode,在界面左侧找到扩展图标(形状类似方块拼图),点击它打开扩展市场,或者直接使用快捷键Ctrl+Shift+X(Windows/Linux)、Command+Shift+X(Mac)。
  1. 在扩展市场的搜索框中,输入 “Remote - SSH” ,然后在搜索结果中找到 “Remote - SSH” 插件,点击 “安装” 按钮。安装完成后,VSCode 的左下角会出现一个绿色的远程连接图标,表明插件安装成功。

确认服务器 SSH 服务状态

  1. 检查 SSH 服务是否安装:如果是 Linux 服务器,打开终端,输入命令dpkg -l | grep ssh(Debian/Ubuntu 系统)或rpm -qa | grep ssh(Red Hat/Fedora 系统) ,如果有相关的 ssh 软件包信息输出,说明已安装;若没有,则需要安装,在 Debian/Ubuntu 系统中使用sudo apt - get install openssh - server命令安装,在 Red Hat/Fedora 系统中使用sudo yum install openssh - server命令安装。
  1. 启动 SSH 服务:安装完成后,使用命令sudo systemctl start ssh(适用于大多数使用 systemd 的 Linux 系统)来启动 SSH 服务;对于一些较老的系统,可能使用sudo service ssh start命令。
  1. 检查 SSH 服务状态:通过sudo systemctl status ssh命令查看 SSH 服务状态,如果看到 “Active: active (running)” 字样,说明 SSH 服务已成功启动并正在运行。

连接步骤

打开 Remote Explorer

成功安装好 VSCode 和 Remote - SSH 插件,并确认服务器 SSH 服务正常运行后,就可以开始进行连接操作了。首先,点击 VSCode 界面左侧边栏的 “Remote Explorer” 图标,这个图标通常看起来像一个地球和一个箭头 ,点击后会展开远程连接相关的选项,这是我们进行远程连接配置和管理的入口。如果没有看到该图标,可通过 “View” 菜单下的 “Appearance” - “Show Activity Bar” 来显示侧边栏。

添加 SSH 配置

在展开的 “Remote Explorer” 中,点击 “SSH TARGETS” 部分的加号按钮 ,此时会弹出一个输入框,在这里你需要输入 SSH 连接信息。格式通常为ssh username@hostname -p port ,其中username是你在远程服务器上的用户名,hostname是服务器的 IP 地址或域名,如果服务器使用的不是默认的 22 端口,还需要通过-p参数指定端口号,如ssh user@192.168.1.100 -p 2222 。输入完成后,按下回车键,VSCode 会提示你选择一个配置文件来保存这些信息,通常选择默认的文件路径即可,这个文件一般位于~/.ssh/config(Linux/macOS)或C:\Users\your_username\.ssh\config(Windows) 。若你之前已经配置过 SSH 连接,可能会出现多个配置文件选项,选择你希望保存到的文件即可。

连接服务器

添加完 SSH 配置后,在 “SSH TARGETS” 下就会出现你刚刚添加的服务器配置。右键点击该配置,你可以选择 “Connect to Host in Current Window” 在当前窗口连接服务器,或者选择 “Connect to Host in New Window” 在新窗口连接 。选择连接方式后,如果还没有设置免密登录,VSCode 会弹出一个输入框,要求你输入该用户在远程服务器上的密码。输入正确的密码后,VSCode 就会开始连接远程服务器,连接过程中,VSCode 的左下角会显示连接状态,如 “Connecting to [服务器地址]...” ,连接成功后,左下角会显示绿色的连接标识以及服务器的相关信息,此时你就可以在 VSCode 中像操作本地文件一样操作远程服务器上的文件了,比如打开文件、编辑代码、运行终端命令等。如果连接失败,可以检查密码是否正确、网络是否正常以及服务器的 SSH 配置是否正确等。

免密登录设置

在日常开发中,每次连接远程服务器都输入密码会比较繁琐,设置免密登录能大大提高工作效率。接下来详细介绍在 vscode 连接 ssh 远程服务器时设置免密登录的步骤。

生成 SSH 密钥对

在本地计算机打开终端。如果你使用的是 Windows 系统,建议通过 Git Bash 或者 Windows 自带的 PowerShell 来执行命令;Linux 和 macOS 系统则直接使用自带的终端即可。在终端中运行以下命令:

 

ssh-keygen -t rsa

运行该命令后,会提示你输入保存密钥的文件路径和文件名。一般情况下,直接按回车键使用默认路径和文件名即可,默认路径在 Windows 系统下是C:\Users\你的用户名\.ssh ,在 Linux 和 macOS 系统下是~/.ssh ,默认文件名为id_rsa(私钥)和id_rsa.pub(公钥)。接着会提示你输入密码短语(passphrase),这一步也可以直接按回车键留空(不建议,安全性较低)。如果设置了密码短语,在使用私钥进行认证时需要输入该密码短语。完成上述步骤后,就在本地生成了一对 SSH 密钥,包括私钥id_rsa和公钥id_rsa.pub 。

将公钥添加到远程服务器

有多种方法可以将公钥添加到远程服务器,这里介绍两种常见的方式:

  1. 使用ssh-copy-id命令:如果你本地系统安装了ssh-copy-id工具(一般 Linux 和 macOS 系统默认安装,Windows 系统若安装了 Git 等工具也可能会有),可以在终端中运行以下命令:
 

ssh-copy-id username@hostname -p port

将username替换为你在远程服务器上的用户名,hostname替换为服务器的 IP 地址或域名,如果服务器使用的不是默认的 22 端口,还需要通过-p参数指定端口号,如ssh-copy-id user@192.168.1.100 -p 2222 。运行该命令后,会提示你输入远程服务器用户的密码,输入正确密码后,公钥就会自动添加到远程服务器的~/.ssh/authorized_keys文件中。

2. 手动添加:若ssh-copy-id命令不可用,你可以手动将公钥添加到远程服务器。首先,在本地终端中使用以下命令查看公钥内容:

 

cat ~/.ssh/id_rsa.pub

然后,将公钥内容复制到剪贴板。接着,通过普通的 SSH 连接登录到远程服务器,在远程服务器的终端中运行以下命令创建或编辑~/.ssh/authorized_keys文件(如果~/.ssh目录不存在,需要先创建,命令为mkdir -p ~/.ssh ):

 

vim ~/.ssh/authorized_keys

进入vim编辑器后,按下i键进入插入模式,将剪贴板中的公钥内容粘贴到文件中,粘贴完成后,按下Esc键,然后输入:wq保存并退出vim编辑器 。为了确保安全,还需要设置~/.ssh目录和authorized_keys文件的权限,在远程服务器终端中运行以下命令:

 

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

验证免密登录

完成公钥添加后,重新尝试连接 SSH 服务器。在 VSCode 的 “Remote Explorer” 中,右键点击之前配置好的服务器,选择连接方式进行连接 。如果设置成功,这次连接将不再需要输入密码,直接就可以连接到远程服务器。若仍然提示输入密码,可能是公钥添加过程有误,需要检查公钥是否正确添加到authorized_keys文件中,以及文件权限设置是否正确;也可能是 SSH 服务器配置中没有启用公钥认证,需要检查服务器的/etc/ssh/sshd_config配置文件,确保PubkeyAuthentication选项设置为yes,修改后重启 SSH 服务,命令为sudo systemctl restart ssh 。

常见问题及解决方法

在使用 vscode 连接 ssh 远程服务器的过程中,可能会遇到一些问题,下面为大家列举一些常见问题及相应的解决方法。

Permission denied (publickey,password)

当出现 “Permission denied (publickey,password)” 错误时,意味着远程服务器拒绝了你的连接请求,原因可能有以下几点:

  • 私钥文件权限问题:SSH 对私钥文件的权限要求非常严格,若权限设置不当,比如权限过于宽松,就会导致认证失败。你可以通过以下命令修改私钥文件权限,将其设置为仅所有者可读取:
 

chmod 400 path_to_keys.pem

这里的path_to_keys.pem需要替换为你实际的私钥文件路径 。

  • 私钥未添加到 SSH 代理:即使私钥文件存在,但如果没有添加到 SSH 代理中,VSCode 可能无法正确使用它进行认证。可以通过以下命令将私钥添加到 SSH 代理:
 

ssh-add path_to_keys.pem

同样,path_to_keys.pem要替换为实际私钥路径 。执行该命令时,可能需要输入私钥的密码短语(如果设置了的话)。

  • 公钥未正确放置在远程主机上:需要确认公钥已被正确添加到远程服务器的~/.ssh/authorized_keys文件中。若不确定,可以使用ssh-copy-id工具重新添加,命令如下:
 

ssh-copy-id -i ~/.ssh/id_rsa.pub username@remote_host

将username替换为远程服务器的用户名,remote_host替换为服务器的 IP 地址或域名 。执行该命令会提示输入远程服务器用户的密码,输入后公钥就会自动添加到服务器的authorized_keys文件中。

  • SSH 服务问题:SSH 服务本身可能存在异常,比如服务未正常运行、版本不兼容等。可以先检查 SSH 服务的状态,命令为sudo systemctl status ssh ,查看服务是否处于运行状态;还可以查看 SSH 版本信息,命令为ssh -V ,确保 SSH 版本与服务器和客户端环境兼容。

无法安装 VS Code 服务器 ,磁盘空间不足

在连接远程服务器时,若提示 “无法安装 VS Code 服务器 ,磁盘空间不足”,这表明远程服务器的磁盘空间已被占满,导致 VS Code 服务器无法正常安装。解决方法如下:

  • 检查磁盘空间使用情况:在远程服务器的终端中运行df -h命令,该命令会以人类可读的方式展示服务器各个分区的磁盘使用情况,包括总容量、已使用容量、可用容量以及挂载点等信息 。例如:
 

Filesystem Size Used Avail Use% Mounted on

udev 3.9G 0 3.9G 0% /dev

tmpfs 791M 2.0M 789M 1% /run

/dev/sda5 20G 19G 0 100% /

tmpfs 3.9G 0 3.9G 0% /dev/shm

tmpfs 5.0M 4.0K 5.0M 1% /run/lock

tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup

从上述输出中可以看到,/dev/sda5分区的使用比例达到了 100%,可用空间为 0,这很可能就是导致无法安装 VS Code 服务器的原因。

  • 清理磁盘空间:确定磁盘空间不足的分区后,可以通过以下几种方式清理空间:
    • 删除不必要的文件:手动查找并删除一些不再使用的大文件或临时文件,比如日志文件、缓存文件等 。例如,如果你发现/var/log目录下有大量的日志文件占用空间,可以使用命令sudo rm -rf /var/log/*.log(请谨慎操作,确保删除的文件确实不再需要)删除部分日志文件 。
    • 卸载不需要的软件包:如果服务器上安装了一些不再使用的软件,可以使用包管理工具卸载它们。在 Debian/Ubuntu 系统中使用sudo apt - get autoremove命令,该命令会自动卸载那些不再被其他软件依赖的软件包;在 Red Hat/Fedora 系统中使用sudo yum autoremove命令。
    • 清理缓存:不同的软件和系统服务可能会有自己的缓存,也可以清理这些缓存来释放空间。比如,对于基于 Debian/Ubuntu 的系统,可以使用sudo apt - get clean命令清理apt缓存,该命令会删除/var/cache/apt/archives/目录下所有已下载的软件包文件 。
  • 扩展磁盘空间:如果清理磁盘空间后仍然无法满足需求,可能需要扩展磁盘空间。这通常需要根据服务器的实际情况进行操作,比如对于云服务器,可以在云服务提供商的管理界面中进行磁盘扩容操作;对于物理服务器,可能需要添加新的硬盘并进行分区和挂载等操作 。具体步骤因服务器环境和存储设备不同而有所差异,这里不再赘述。

总结

通过本文,我们详细介绍了使用 vscode 连接 ssh 远程服务器的全过程,从前期准备工作,包括安装 VSCode、Remote - SSH 插件以及确认服务器 SSH 服务状态,到具体的连接步骤,如打开 Remote Explorer、添加 SSH 配置并连接服务器,再到免密登录设置和常见问题的解决方法,每一步都为大家提供了详细的操作指南和注意事项 。在实际操作过程中,大家要仔细核对每一个配置信息,尤其是用户名、密码、IP 地址、端口号以及文件权限设置等。掌握 vscode 连接 ssh 远程服务器的技能,能极大地提升开发效率,让你在本地就能轻松管理远程服务器上的代码和文件。希望大家按照本文步骤动手尝试,将这一实用技能运用到日常开发中 ,如果在操作过程中遇到任何问题,欢迎在评论区留言交流,大家一起共同解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值