vscode ssh远程连接服务器的思考浅析

作者:逐光而行 时间:2023-06-05 07:12:05 

过往经验总结

注:笔者写本文的目的不是完整细致地描述连接的全过程,而是记录当中遇到的现象、问题,及为什么会产生这个问题的分析。所以部分过程会省略,或者默认读者都是很熟悉各种操作的。

使用ssh远程连接,要获知目标主机的ip地址,并使用正确的密码或密钥。

笔者之前曾尝试过用不同的工具来连接服务器。 其中,

  • putty和xshell本身就是支持多种连接协议的连接工具。 用它们连接很方便。输入密码就是尝试建立连接时输入用户名之后再输;输入密钥就是要找到该工具对应的配置入口。一些字体大小、发送请求时长之类的参数设置也可以直接在工具界面找到。

  • idea之类的IDE现在也有了remote ssh 的功能。这个ssh是IDE自带的。 它连接简单,傻瓜式操作。只需要在新建项目界面,点击远程连接的按钮,一步步往下就成功了。 但它有个特点,就是有点卡。这和它处理文件的机制有关系,后面会细说。

关于vscode

其实vscode本质上只是一个编辑器,它强大的功能依托于各种可安装的插件。 很多插件本质上就是将 已有 的功能在vscode中以另一种形式展现出来。

举个例子,小明还没有在本机安装git,那他安装的和git有关的插件是不会生效的。同理,vscode的ssh本质上是将电脑已有的ssh服务在vscode中呈现。如果连接不上,要么是插件本身有问题(基本排除,真有问题应该很多人给差评了),要么是本机的ssh服务有问题,要么是参数设置有问题。

与ssh有关的两个配置文件

.ssh/config 这是对单个ssh连接的配置信息,格式可参照如下:

Host <连接的主机名(可以自己取>
  HostName <主机ip地址>
  User <连接的用户>
  IdentityFile <认证文件,也就是密钥文件的路径>

settings.json 这是对vscode的全局配置,其中也可以加入ssh相关的内容,比如设置使用的ssh服务路径。

报错解决:ssh连接时提示管道不存在

问题

网上说是win10自带的openssh的问题。

我在cmd上尝试过直接使用该工具,发现会提示私钥文件权限太大,故禁止连接。

由此确认是本机ssh服务的问题

解决方案

方案一:使用git中的ssh作为替代

  • 找到该ssh的位置:在git中用 whereis ssh命令。(windows则进入git-bash来敲命令)

  • settings.json中加入如下一行: "remote.SSH.path":<git路径+git中ssh路径的拼接体>,

保存后重启vscode。

方案二:修改私钥文件权限

网上有博客文章介绍过具体操作,总结来说就是鼠标点按钮一步步找到入口然后设置目标主机对文件的访问权限,同时禁止其他用户的权限。不过我没有用这种方式,因为我对windows自带的openssh其实是不太放心的。

各方式远程连接项目文件的性能对比

现象

  • 同时打开多个putty/xshell终端以显示项目文件没问题

  • 同时用多个vscode窗口打开项目也没问题

  • 同时用IDE打开两个及以上项目文件会导致服务器死机

  • 一个ide,再来一个vscode也不行

原因分析

  • IDE比较耗性能,vscode更轻量

  • 两者对文件的同步方式不同。 当连接中断时,vscode上显示的当前项目文件也没有了,但是idea上的还在,只是改了之后不能同步到远程主机了。这说明,vscode只是将远程终端上的内容换种形式呈现出来,而idea则是在本地也备份了一份文件。

来源:https://juejin.cn/post/7195375870591107132

标签:vscode,ssh,远程连接,服务器
0
投稿

猜你喜欢

  • python爬虫框架Scrapy基本应用学习教程

    2021-04-05 13:09:44
  • Tensorflow 1.0之后模型文件、权重数值的读取方式

    2022-01-09 21:33:18
  • pymongo为mongodb数据库添加索引的方法

    2024-01-22 17:51:51
  • Python Selenium参数配置方法解析

    2023-12-28 09:20:02
  • mysql中各种常见join连表查询实例总结

    2024-01-19 05:31:52
  • 使用auto.js实现自动化每日打卡功能

    2024-04-16 08:47:38
  • Perl eval函数使用实例

    2022-12-21 05:25:55
  • 在Python中使用Mako模版库的简单教程

    2021-11-08 12:33:45
  • mysql8.0.12如何重置root密码

    2024-01-19 03:43:03
  • asp 实现当有新信息时播放语音提示的效果

    2011-03-31 11:00:00
  • SQL中函数 replace 的参数1的数据类型ntext无效的解决方法

    2024-01-18 15:23:15
  • PyQt5实现画布小程序

    2022-03-02 07:37:46
  • 判断所使用的浏览器不仅仅是电脑浏览器代码整理

    2023-12-13 10:13:21
  • Ubuntu18.0.4下mysql 8.0.20 安装配置方法图文教程

    2024-01-21 07:10:03
  • python如何对实例属性进行类型检查

    2021-08-17 09:28:19
  • javascript实现Table排序的方法

    2024-04-19 10:16:19
  • Python代码块及缓存机制原理详解

    2023-07-02 08:12:07
  • CentOS+Nginx+PHP+MySQL详细配置(图解)

    2023-11-24 03:04:13
  • mysql中的跨库关联查询方法

    2024-01-25 22:48:06
  • Python切片操作实例分析

    2022-05-02 17:49:25
  • asp之家 网络编程 m.aspxhome.com