[Linux服务器] vscode 远程 linux(包括离线vscode-server安装,免密登录方法)

141 0
Honkers 2025-5-21 21:58:38 来自手机 | 显示全部楼层 |阅读模式

vscode 远程 linux(包括离线vscode-server安装,免密登录方法)


本教程前提是安装并配置好 ssh 服务,并且远程主机和本地主机在同一个局域网内.

1. vscode 安装安装远程所需扩展及配置

1.1 安装扩展

在vscode 扩展中搜索Remote - SSH,下载安装

1.2 通过 ssh 远程连接

1.2.1 通过 ssh 连接命令连接

在vscode 中依次点击 远程资源管理器->新建远程,在打开的连接命令窗口中输入命令

  1. ssh <user>@<hostname>:[port]
复制代码
  • user: 是在远程服务器上的用户名
  • hostname: 远程服务器的主机名或 IP 地址
  • port: SSH 连接的端口号(默认为 22)

输入后按Enter键选择要更新的配置文件,一般选择第一个也就是C:\Users\${你的用户名}\.ssh\config

1.2.2 通过更新 ssh 配置文件连接

在vscode 中依次点击远程资源管理器->打开SSH配置文件选择要更新的 SSH 配置文件,一般选择第一个也就是C:\Users\${user}\.ssh\config,打开后编辑配置并保存:

  1. Host xxx
  2. HostName xxx.xxx.xxx.xxx
  3. Port xx
  4. User xxx
  5. IdentityFile "xxx"
复制代码
  • Host:这是一个主机别名,你可以使用这个别名来代替实际的主机名进行连接.
  • HostName:这是指定远程主机的 IP 地址或主机名.
  • Port:这是指定 SSH 连接的端口号.
  • User:这是指定用于连接远程主机的用户名.
  • IdentityFile:这是指定用于身份验证的私钥文件的路径.(免密登录才需要,请看3. 免密登录)

如果要配置多个远程,继续在此文件追加配置即可

1.2.1 或 1.2.2 完成后点击远程资源管理器的刷新,此时远程资源管理器会出现刚配置的远程连接,根据需要选择在当前窗口连接或在新窗口中连接,此时会让你输入密码,然后会在远程端下载所需文件(需要联网),如果无法联网,请看2. 离线下载 vscode-server 并安装

2. 离线下载vscode-server并安装

如果远程端不能联网可以下载包离线安装,下载 vscode-server 的 url 需要和 vscode 客户端版本的 commit-id 对应.通过 vscode 面板的帮助->关于可以获取该信息,复制信息,我当前版本如下(提交后面对应的就是 commit_id):

  1. 版本: 1.89.1 (system setup)
  2. 提交: dc96b837cf6bb4af9cd736aa3af08cf8279f7685
  3. 日期: 2024-05-07T05:13:33.891Z
  4. Electron: 28.2.8
  5. ElectronBuildId: 27744544
  6. Chromium: 120.0.6099.291
  7. Node.js: 18.18.2
  8. V8: 12.0.267.19-electron.0
  9. OS: Windows_NT x64 10.0.19044
复制代码

2.1 旧版离线包下载

vscode-server 下载地址如下,其中 commit_id 是上面复制的提交 id:

  1. x86:
  2. https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable
  3. arm:
  4. https://update.code.visualstudio.com/commit:${commit_id}/server-linux-arm64/stable
复制代码

将下载的文件 vscode-server-linux-x64.tar.gz 解压解包后名为 vscode-server-linux-x64 文件夹改名为 ${commit_id} 放在 /home/${user}/.vscode-server/bin/ 目录下.

2.2 新版离线包下载

在某次更新后远程端的 .vscode-server 目录结构发生变化:

  1. 📦.vscode-server
  2. ┣━ 📁bin # 存放旧方法下的vscode commit相关文件
  3. ┃ ┗━ 📁${commit_id1}
  4. ┃ ┗━ 📁${commit_id2}
  5. ┃ ┗━ ···
  6. ┣━ 📁cli # 存放新方法下的vscode commit相关文件
  7. ┃ ┗━ 📁servers
  8. ┃ ┃ ┗━ 📁Stable-${commit_id}
  9. ┃ ┃ ┃ ┗━ 📁server
  10. ┃ ┃ ┃ ┗━ ···
  11. ┃ ┃ ┗━ ···
  12. ┃ ┗━ 📜iru.json # 存放最近的vscode commit_id
  13. ┣━ 📜code-${commit_id} # 存放vscode_cli_alpine_x64_cli.tar.gz解压后名为code的文件,并将其改名为code-${commit_id}
  14. ┣━ 📁data
  15. ┗━ 📁extensions
复制代码

现在需要安装两个文件,两个文件的下载地址如下:

  1. x86:
  2. https://vscode.download.prss.microsoft.com/dbazure/download/stable/${commit_id}/vscode-server-linux-x64.tar.gz
  3. https://vscode.download.prss.microsoft.com/dbazure/download/stable/${commit_id}/vscode_cli_alpine_x64_cli.tar.gz
  4. arm:
  5. https://vscode.download.prss.microsoft.com/dbazure/download/stable/${commit_id}/vscode-server-linux-arm64.tar.gz
  6. https://vscode.download.prss.microsoft.com/dbazure/download/stable/${commit_id}/vscode_cli_alpine_arm64_cli.tar.gz
复制代码

第一个文件 vscode-server-linux-x64.tar.gz 解压解包后名为 vscode-server-linux-x64 文件夹改名为 server 放在 /home/${user}/.vscode-server/cli/servers/Stable-${commit_id}/ 目录下.

第二个文件 vscode_cli_alpine_x64_cli.tar.gz 解压解包后名为 code 的文件改名为 code-${commit_id}放在/home/${user}/.vscode-server/目录下

2.3 无法连接可能问题

  1. 权限问题

如果仍然连接不上,则可能需要修改.vscode-server文件夹及其子目录的权限,例如权限改为700,再尝试连接:

  1. chmod -R 700 /home/${user}/.vscode-server/
复制代码
  1. ssh 设置问题

打开远程主机的 sshd_config 文件,一般在/etc/ssh/sshd_config文件,找到AllowTcpForwarding no这一行,将 no 改为 yes,然后保存退出.

然后重启 ssh 服务:

  1. sudo systemctl restart sshd
复制代码
  1. known_hosts 文件问题

如果仍然连接不上,则可能是由于 known_hosts 文件问题导致的,如果你使用了相同的 ip 地址连接过不同主机就会出现此问题,可以尝试删除 known_hosts 文件,然后再尝试连接,本地主机下执行以下命令:

  1. # powershell
  2. rm $env:USERPROFILE\.ssh\known_hosts
  3. # cmd
  4. del %USERPROFILE%\.ssh\known_hosts
复制代码

3. 免密登录

3.1 生成 SSH 密钥

生成 ssh 使用的公钥/密钥对,请从客户端上的 PowerShell 或 cmd 提示符运行以下命令,具体使用方法详细见:微软官方

  1. ssh-keygen -t rsa
复制代码

输入命令执行完成后会生成C:\Users\${user}\.ssh,里面会有 id_rsa(私钥),
id_rsa.pub(公钥)两个文件,这两个是默认名称,在执行命令时可以添加选项选择不同文件名,如果更改文件名,后面步骤对应文件路径也要更改

3.2 添加公钥到远程服务器

id_rsa.pub(公钥)生成后,打开复制内容,打开远程主机/home/${user}/.ssh/authorized_keys文件,如果文件不存在就创建,然后粘贴复制的公钥内容,然后打开1.2.2 通过更新 ssh 配置文件连接中的C:\Users\${user}\.ssh\config配置文件,在你要连接的Host下配置IdentityFile,后面填写id_rsa(私钥)路径,并保存:

  1. Host xxx
  2. HostName xxx.xxx.xxx.xxx
  3. Port xx
  4. User xxx
  5. IdentityFile "C:\Users\${user}\.ssh\id_rsa"
复制代码

如果手动创建 /home/${user}/.ssh/authorized_keys,需要更改其权限:

  1. chmod 700 /home/${user}/.ssh
  2. chmod 600 /home/${user}/.ssh/authorized_keys
复制代码

3.3 设置允许通过密钥登录

打开远程主机的 sshd_config 文件,一般在/etc/ssh/sshd_config文件,找到PubkeyAuthentication no这一行,将 no 改为 yes,然后保存退出.

然后重启 ssh 服务:

  1. sudo systemctl restart sshd
复制代码

3.4 验证方式

3.3 完成后点击vscode中远程资源管理器的刷新,此时远程资源管理器会出现刚配置的远程连接,根据需要选择在当前窗口连接或在新窗口中连接,点击后确认左下角进入到连接成功的状态,期间没有提示输入密码的窗口,即代表成功了

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行