windows vscode配置remote插件ssh远程连接linux编辑文件

6,164 阅读3分钟

作者 : Jeannnette

引言: 首先在日常使用Linux中,肯定遇到很多需要远程编辑linux上面的文件的场景,虽然可以很方便的使用svn服务器/git服务器之类,但是为了有时候更便捷的使用,我还是想直接使用vscode进行编辑文件

Let's Go, Get it !

完成后图如下: (可以在线编辑)远程Linux系统文件, 非常适合需要及时更改远程服务器

基础配置

步骤如下

  1. 安装,OpenSSH,建议去官网安装 我提供如下路径:
第一个 (官网):http://www.openssh.com/portable.html#http
第二个(其它): https://openssh.en.softonic.com/
  1. 当安装完成后-如果是win10需要把当前安装目录添加至系统环境变量
1. 找到你安装的目录 \bin 目录
2. 例如: F:\DEVLOP\openSSH\bin
3. 将\bin目录添加到环境变量
4. 我的电脑右击属性 - 高级系统设置 - 高级 - 环境变量 

  1. 安装vscode需要的插件,大概需要添加一下这些内容

  1. 安装完成之后会发现vscode里面会多出一个小图标

  1. 点击其中的设置图标,进入到配置文件,默认配置文件会安装在windows系统生成秘钥的地方 %USERPROFILE%\.ssh\

HostName : linux服务器 ip 地址

User: 用户名

IdentityFile: ~/.ssh/id_rsa-remote-ssh #

这个讲是第二种配置方式需要添加的,如果使用第一种方式不需要添加这个指定的文件

  1. 添加之后当打开powershell管理员 模式下 进行生成公钥与私钥

第一种实现方式:

  1. 配置SSH密钥

    检查本地计算机上是否已有SSH密钥(非对称加密)。window公钥通常位于路径: %USERPROFILE%\.ssh\ ,如果没有发现id_rsa.pub 文件, 代表本地没有生成过SSH秘钥,使用以下命令:

    ssh-keygen -t rsa -b 4096
    # 只需要一直回车就能生成到 %USERPROFILE%\.ssh\ 目录下
    
  2. 在Windows上,在本地命令提示符中运行以下命令,替换REMOTEHOST的两个值[your-user-name-on-host]和[host-fqdn-or-ip-goes-here]

    SET REMOTEHOST=[your-user-name-on-host]@[host-fqdn-or-ip-goes-here]
    
    scp %USERPROFILE%\.ssh\id_rsa.pub %REMOTEHOST%:~/tmp.pub
    ssh %REMOTEHOST% "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat ~/tmp.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm -f ~/tmp.pub"
    
    # PS: 
    # your-user-name-on-host: 你的主机用户名
    # host-fqdn-or-ip-goes-here:你的主机ip
    
    

    如果以上命令出现问题,那么直接手动把目录 %USERPROFILE%\.ssh\id_rsa.pub的 公钥内容 复制到 linux下 /[用户名]/.ssh/authorized_keys 文件里面进行保存

第二种实现方式:比上一中安全安全的方式

虽然在所有SSH主机上使用单个SSH密钥可以很方便,但如果有人可以访问您的私钥,他们也可以访问所有主机。您可以通过为开发主机创建单独的SSH密钥来防止这种情况。只需按以下步骤操作

  1. 在另一个文件中生成单独的SSH密钥。

    ssh-keygen -t rsa -b 4096 -f %USERPROFILE%\.ssh\id_rsa-remote-ssh
    
  2. 在VS Code中,运行Remote-SSH:打开配置文件...在命令选项板(F1)中,选择SSH配置文件,然后添加(或修改)主机条目,如下所示:(其实这个就是一个配置文件, 在基础配置中的方式打开一样的)

    Host name-of-ssh-host-here
        User your-user-name-on-host
        HostName host-fqdn-or-ip-goes-here
        IdentityFile ~/.ssh/id_rsa-remote-ssh   
    
    1. 在Windows上,在本地命令提示符中运行以下命令,替换name-of-ssh-host-here为步骤2中SSH配置文件中的主机名。
    SET REMOTEHOST=name-of-ssh-host-here
    SET PATHOFIDENTITYFILE=%USERPROFILE%\.ssh\id_rsa-remote-ssh.pub
    
    scp %PATHOFIDENTITYFILE% %REMOTEHOST%:~/tmp.pub
    ssh %REMOTEHOST% "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat ~/tmp.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm -f ~/tmp.pub"
    

检查是否连接成功

然后就能添加小目录到指定 linux 下的文件,并且通过ssh连接,进行在线的编辑代码或者是文档了

其他报错情况

error: An SSH installation couldn't be found

这个报错通常是因为,vscode没有指定好相应的路径好, 需要到Settings --> Remote.SSH.Path 进行指定OpenSSH的路径