vscode ssh远程连接服务器的思考浅析
逐光而行 人气:0过往经验总结
注:笔者写本文的目的不是完整细致地描述连接的全过程,而是记录当中遇到的现象、问题,及为什么会产生这个问题的分析。所以部分过程会省略,或者默认读者都是很熟悉各种操作的。
使用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则是在本地也备份了一份文件。
加载全部内容