这篇文章为Remote Development扩展出现之前所应用的技术,在Remote Development扩展出现后,可直接使用扩展,详情请参阅使用vscode进行远程开发

以下为旧文档,仅作记录。

使用vscode访问和修改远程文件,分三步实现:在远程linux机器上安装rmate;在本地windows上安装openssh;在vscode中安装扩展remote vscode。

1、 在远程linux机器上安装rmate

rmate有很多中语言版本,这里用的是python的版本。github地址:https://github.com/sclukey/rmate-python

下载安装比较简单,在linux中执行以下命令即可

wget https://raw.githubusercontent.com/sclukey/rmate-python/master/bin/rmate
chmod +x ./rmate
mv ./rmate /usr/local/bin/rmate

2、在本地window中安装openssh

github地址:https://github.com/openssl/openssl/blob/master/INSTALL

这个是需要自己编译的,推荐直接利用window版的安装包:https://www.mls-software.com/opensshd.html

推荐使用exe版本。如果下载的是免安装的版本,需要在windows设置一下环境变量,到解压后的bin目录。安装完成运行ssh命令会有以下提示:

可以直接运行 ssh-keygen -t rsa 命令生成密钥对,一般默认的文件夹会在当前用户目录下的.ssh文件夹中。在windows的命令行中实现对远程linux的免密码登录,和在linux系统中的方式是一样的,将windows中生成的公钥id_rsa.pub文件追加到所用的linux登录用户的.ssh目录中的authorized_key文件中即可。

要使authorized_key生效,需要需要对sshd_config文件进行修改,主要是以下三项,取消注释即可

vim /etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

之后,执行 service sshd restart 命令重启sshd服务

service sshd restart
# 之后
cat id_rsa.pub >> authorized_keys
# 注意文件的路径

注意的是,如果使用的linux登录用户不是root用户,需要修改以下.ssh文件夹以及authorized_key文件的权限,否则是无法实现免密码登录的

chmod  .ssh
cd .ssh/
chmod authorized_keys

3、安装remote vscode扩展

扩展地址:https://marketplace.visualstudio.com/items?itemName=rafaelmaiolla.remote-vscode

安装完成后,面板中点击Start Server,启动服务(这一步是必须的)

之后打开终端(【查看】——【集成终端】),输入以下命令:

 ssh -R 52698:127.0.0.1:52698 登录linux用户名@linux计算机ip地址

# 例子
ssh -R :127.0.0.1: learn@192.168.1.215
ssh -R 52698:127.0.0.1:52698 learn@192.168.1.215 -p 2159
# 上面2159为端口号,只是例子,ssh默认通过22端口访问远程主机,出现这种情况可能是更改了端口,也可能是存在端口的转发。
# 之后
rmate -p 52698 linux中的文件名称

结果会打开相应的文件:

之后可以直接进行修改了。

此外,如需设置扩展自动启动,只需点一下【工作区设置】,这样会自动添加setting.json文件

在文件中进行如下设置即可。

最后,如果开启了防火墙,需要把所用到的52698端口打开。

使用vscode访问和修改远程计算机文件的更多相关文章

  1. ftp获取远程Pdf文件

    此程序需要安装ftp服务器,安装adobe reader(我这里使用的adobe reader9.0) 1.部署ftp服务器 将ftp的权限设置为允许匿名访问,部署完成 2.安装adobe reade ...

  2. 本地VSCode编辑远程服务器文件

    前言 先说下我的场景:服务器搭设了一系列复杂环境,然后需要使用PHP实现某些功能 选这种远程编辑的原因: 首先PHP打死我也不想装(这个现在是出了VB外最惹人厌的语言了) 然后环境比较复杂,本地装下比 ...

  3. #在windows上使用ngix重定向目录访问远程服务器文件详细实例

    为了在开发环境保持于生产环境相同的访问远程服务器文件资源的目录配置,需要在开发环境(windows)在远程文件服务器使用nignx重定向文件目录,因为网上的资料大都是copy的,解释比较笼统,也没有具 ...

  4. [原创]用windows7连接windows2003的终端服务器时,出现"由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断"的问题

    用windows7连接windows2003的终端服务器时,出现"由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断"的问题,原因是终端服务器授权方式设置为了"每 ...

  5. touch — 设定文件的访问和修改时间

    PHP touch 设定文件的访问和修改时间 touch (PHP 4, PHP 5) touch — 设定文件的访问和修改时间 说明 bool touch ( string $filename [, ...

  6. 分享CCNTFS小工具,在 macOS 中完全读写、修改、访问Windows NTFS硬盘的文件,无须额外的驱动(原生驱动)更稳定,简单设置即可高速传输外接NTFS硬盘文件

    CCNTFS [ 下载 ] 在 macOS 中完全读写.修改.访问Windows NTFS硬盘的文件,无须额外的驱动(原生驱动)更稳定,安装后进行简单设置即可高速传输外接NTFS硬盘文件,可全程离线使 ...

  7. 从windows本地IDE启动远程Linux文件进行调试

    1)  因为WingIDE调用putty和plink进行ssh连接,需要先设置putty. 点击下载putty,并解压,把解压路径附到操作系统PATH环境变量中,之后重新启动WingIDE,让它重新读 ...

  8. windows server 2008 IP安全策略关闭端口,禁止ping,修改远程连接3389端口,开放指定端口

    windows server 2008 IP安全策略关闭端口:      Tomcat服务访问不了情况解决.    Windows默认情况下有很多端口是开放的,在你上网的时候,网络病毒和黑客可以通过这 ...

  9. (转)WS2008远程桌面连接时提示:“要登录到此远程计算机,您必须被授予允许通过终端服务登录的权限”的解决办法

    原文:http://www.chunfengxiyu.com/ws2008-mstsc-privilege.html WS2008远程桌面连接时提示:“要登录到此远程计算机,您必须被授予允许通过终端服 ...

随机推荐

  1. CSharpGL(21)用鼠标拾取、拖拽VBO图元内的点、线或本身

    CSharpGL(21)用鼠标拾取.拖拽VBO图元内的点.线或本身 效果图 以最常见的三角形网格(用GL_TRIANGLES方式进行渲染)为例. 在拾取模式为GeometryType.Point时,你 ...

  2. JDBC基础

    今天看了看JDBC(Java DataBase Connectivity)总结一下 关于JDBC 加载JDBC驱动 建立数据库连接 创建一个Statement或者PreparedStatement 获 ...

  3. mac 无法识别seagate硬盘、无法向其写入文件

    1,无法识别 Seagate 硬盘 新买的mac air Captian 10.11.6系统,连上硬盘根本不出现盘符,usb插头不要插得太深,慢慢的插入,看到硬盘白灯亮起就可以了 2,无法向 Seag ...

  4. Jmeter正则表达式

    Jmeter正则表达式 文章转自:http://www.cnblogs.com/jamesping/articles/2252675.html 正则表达式可以帮助我们更好的描述复杂的文本格式.一旦你描 ...

  5. 04. Web大前端时代之:HTML5+CSS3入门系列~HTML5 表单

    Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 一.input新增类型: 1.tel:输入类型用于应该包 ...

  6. 【.net 深呼吸】将目录树转化为文本

    大伙都知道,文件系统是树形结构的,有时候我们会想到把目录的层次结构变为纯文本形式,就像这样: ├─Windows-universal-samples-master │ ├─Samples │ │ ├─ ...

  7. 关于SVG的viewBox

    在SVG中,通过svg标记的 width和height可以规定这段SVG代码所表达的数据在绘制时所占用的空间大小 如下代码svg设置了宽度与高度,rect同样,所以结果自然是全屏 <svg wi ...

  8. J2EE 项目读写分离

    先回答下 1.为啥要读写分离? 大家都知道最初开始,一个项目对应一个数据库,基本是一对一的,但是由于后来用户及数据还有访问的急剧增多, 系统在数据的读写上出现了瓶颈,为了让提高效率,想读和写不相互影响 ...

  9. YYModel 源码解读(二)之NSObject+YYModel.h (4)

    接下来我们继续向下看 typedef struct { void *modelMeta; ///< _YYModelMeta void *model; ///< id (self) voi ...

  10. markdown常用语法总结

    转自markdown示例[模板] 1.1.段落标题 根据原文中的文档标题可以对应设置标题. # 一级标题## 二级标题### 三级标题 效果 => 一级标题 二级标题 三级标题 1.2.斜体.加 ...