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


猜你喜欢
- 本文实例为大家分享了python实现反向迭代的具体代码,供大家参考,具体内容如下案例: &nb
- 当我们写用例断言时,往往一个断言结果是不够的,所以需要加入多重断言,而多重断言,当断言中间出现断言结果False时,会中断后续的断言执行,会
- 當我們有很多筆的條件要對資料庫進行搜尋時,常常會用到下列的語法 SELECT * FROM Member WHERE accun
- 环境系统: Mac 工具: Alfred, git, homebrew, pngpaste. 语言: perl 其他: Gitee工具下载g
- 前言关于 var、let 和 const 三个关键字的区别,是一个老生常谈的问题,也是经典的面试题。本篇文章将全面讲解三者的特性,以及它们之
- 一、决策树的特点1.优点具有很好的解释性,模型可以生成可以理解的规则。可以发现特征的重要程度。模型的计算复杂度较低。2.缺点模型容易过拟合,
- 前言对于文件的比较一般有几种,比如比较文件的内容,比较文件的大小,或者直接对比整个项目文件。特别是在项目的更新迭代中,可以通过该库来比较当前
- 以下就是跟大家分享的19个MySQL性能优化主要要点,一起学习学习。1、为查询优化你的查询大多数的MySQL服务器都开启了查询缓存。这是提高
- function create5StarClip(context) { var n = 0; var dx = 100; var dy =
- 这篇文章主要介绍了Python基于内置库pytesseract实现图片验证码识别功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具
- 本教程将分步讲解如何使用JQuery和CSS打造一个炫酷动感菜单。jQuery的"write less, do more"
- 不能将 SQL Server 2000 日志传送配置升级到 SQL Server 2008。数据库维护计划向导是 SQL Server 20
- 1。注意用SQL分析器可以看select出来的东西select right(convert(varchar(30),getdate(),12
- 目前手边的一些工作,需要实现声音播放功能,而且仅支持wav声音格式。现在,一些网站上支持文字转语音功能,但是生成的都是MP3文件,这样还需要
- 如下所示:import urllibimport urllib2 import osimport timeimport re import
- 本人就职于一个本地门户网站,每天网站上的天气都得更新。久而久之感到相当麻烦,于是写了一个定时的新闻小偷,帖出来大家参考一下系统
- 前言:对于Web开发人员,弹出框和提示框的使用肯定不会陌生,比如常见的表格新增和编辑功能,一般常见的主要有两种处理方式:行内编辑和弹出框编辑
- 很多时候,用户可能会因为承受不了某一产品中的细节设计而放弃使用该产品,这无疑是让设计人员感很沮丧的事情,因为除去这个细节的问题外,这个产品可
- 基础知识实际上,“运算符重载”只是意味着在类方法中拦截内置的操作……当类的实例出现在内置操作中,Python自动调用你的方法,并且你的方法的
- 关于 *args与**args的用法*args 和 **kwargs主要用于函数定义,你可以将不定数量的参数传递给某个函数。*args*ar