笑看天下无敌手 发表于 2025-4-11 20:08:36

vscode通过Remote-SSH连接长途机器(ubuntu 18.04)

需求:

1.vscode可以通过SSH协议连接到长途机器
2.vscode可以通过SSH协议访问长途机器上的命令行终端功能
3.vscode可以通过SSH协议访问长途机器上的恣意文件
4.vscode可以通过SSH协议使本机与长途机器文件互传
情况:

1.工作机器在局域网内,系统为win7,其本地ip:192.168.0.109,且带一张无线网卡,可用于访问Internet。
2.长途机器一个虚拟机,其系统是ubuntu18.04(用户名:tanglx,密码:123),其被布置在局域网中另外一台机器上,这台虚拟机拥有和本地局域网互通,以及访问Internet的能力,其本地ip:192.168.0.105。
步骤:

Step1:vscode是通过SSH连接长途机器,故而本机必要安装SSH客户端。在下列链接处下载相应的OpenSSH版本。
Releases · PowerShell/Win32-OpenSSH · GitHubwx
我本机下载的是,OpenSSH-Win64.zip,将该文件解压到指定文件夹,我本机解压到D盘,这里必要记住,ssh.exe的路径,此处ssh.exe的全路径为D:\OpenSSH-Win64\ssh.exe。背面vscode会利用该路径来调用ssh客户端。
Setp2:vscode是通过SSH协议来连接到长途机器,故而长途机器上必要有SSH服务。在长途机器上执行下列语句,用来安装SSH服务。
更新源信息:sudo apt update
安装SSH服务:sudo apt install openssh-server
一般安装之后,SSH服务就会启动,但还是提供如下三个命令用于查察,大概重启SSH服务。
设置开机启动:systemctl enable ssh
重启SSH服务:systemctl restart ssh
查察SSH服务状态:systemctl status ssh
顺遂的话,直接就可以了,且此处就可以跳至下一步骤。不顺遂可以跳到后话章节看一下。
Setp3:在我们的工作机器上下载安装一个vscode,必要注意的是vscode支持在win7上利用的末了一个版本是1.70.3,我工作机安装的是win7,故而下载的是vscode(1.70.3)。
vscode官网:Visual Studio Code - Code Editing. Redefined
vscode 1.70版本下载地址:Visual Studio Code July 2022
Setp4:在vscode安装完成后,点击菜单栏中的“View”--“Extensions”,在“Extensions”窗口的搜刮栏中输入Chinese,选择出来的Chinese(Simplifiled)(最好是有Microsoft认证的),点击安装,安装完成后,vscode就变成中文支持了。
Setp5:点击菜单栏中的“查察”--“扩展”,在“扩展”窗口的搜刮栏中输入“Remote SSH”,选择下面显示的Remote-SSH项(最好是有Microsoft认证的),点击安装。安装完成后,必要设置本机的ssh路径,操纵步骤:点击左侧菜单栏的“扩展”,找到安装的Remote SSH,点击“设置”--“扩展设置”,在右边的设置详情区,找到“Remote SSH:Path”项,并且填入Step1中的ssh.exe的绝对路径,表示详情如下图:
https://i-blog.csdnimg.cn/blog_migrate/d59a42492ff2ee39663d7e3c4c9b8082.png

Step6:点击左侧出现的“长途资源管理器”,会出现一个“长途资源管理器窗口”,在窗口中可以看到“SSH TARGETS”这一项,点击旁边的“+”号,会弹出命令窗口,在命令窗口输入:
“ssh tanglx@192.168.0.105”
具体如下图所示:
https://i-blog.csdnimg.cn/blog_migrate/ba7b885a4dfd577a32aca5fc2f22b627.png
按下回车键,会出现一些路径选择,以及一些设置和帮助项,其具体如下图。我们选择此中一个路径“C:\ProgramData\ssh\ssh_config”。此处必要注意的是要包管该文件大概文件夹拥有创建修改的权限,假如没有相干权限,可以指定其他地方。注:究竟上此处是选择一个文件作为ssh连接的配置文件,我们可以本身指定文件。假如必要指定文件,我们在“Remote - SSH”扩展的“扩展设置”中找到Remote SSH:Config.file项,即可进行相应的编辑。
https://i-blog.csdnimg.cn/blog_migrate/f956620a9bd33de06b4275a617009eee.png
 Step7:完成上述动作后,在SSH TARGETS下会出现一个项,这个项是一个SSH连接的实例,其如下图所示:
https://i-blog.csdnimg.cn/blog_migrate/7a507356532829360dd89807bbd216e4.png
在该项上点击右键,选择“Connect Host In Current Window” ,等待其连接成功,一般都会成功。假如不成功,则必要根据具体原因来查找,此处不陈诉。在连接成功之后,长途机器会去下载相应版本的vscode-server,并且将其运行起来。在vscode的“查察”--“终端”这一栏会有如下信息:
tanglx@192.168.0.105's password:
2074f1407276: running
Acquiring lock on /home/tanglx/.vscode-server/bin/a21a160d630530476218b85db95b0fd2a8cd1230/vscode-remote-lock.tanglx.a21a160d630530476218b85db95b0fd2a8cd1230
Installing to /home/tanglx/.vscode-server/bin/a21a160d630530476218b85db95b0fd2a8cd1230...
2074f1407276%%1%%
Downloading with wget
Download complete
2074f1407276%%2%%
tar --version:
tar (GNU tar) 1.29
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

#####################省略N行########################

2074f1407276: start
SSH_AUTH_SOCK====
DISPLAY====
webUiAccessToken====
listeningOn==40795==
osReleaseId==ubuntu==
arch==x86_64==
tmpDir==/run/user/1000==
platform==linux==
unpackResult==success==
didLocalDownload==0==
downloadTime==156666==
installTime==2449==
extInstallTime====
serverStartTime==287==
connectionToken==b064b0e4-0f5c-4c26-9c81-e9419c37bee1==
2074f1407276: end 且在完成之后,查察目的机器上的会多一个文件夹:~/.vscode-server,该文件夹是vscode的服务端步伐。查察vscode界面,在左下角会有一个连接的标识,体现连接成功。其详情如下所示:
https://i-blog.csdnimg.cn/blog_migrate/b98581ece1331411d35056dce9ac0285.png
 Step8:颠末上述步骤,我们已经完成了需求1,即vscode可以通过SSH连接到长途机器了。现在必要利用vscode打开一个长途机器的终端,并且进行一些测试操纵。在已经连接成功的情况下,点击命令菜单“终端”--“新建终端”,即可得到一个长途终端。我在终端里输入了一个“ip a”命令,体现该终端已经可用,具体如下图所示:
https://i-blog.csdnimg.cn/blog_migrate/e546608b685986e3138f472e6c6cb682.png
Step9:还剩末了一个需求3,必要对长途机器的文件进行自由访问。 我们这里利用上一步骤的终端在用户目次下创建一个子目次MyPrj1,具体如下:
https://i-blog.csdnimg.cn/blog_migrate/165f2a4029d08b7f2daeab8b39e52459.png
点击左侧菜单栏的“资源管理器”--“打开文件”,然后在命令提示栏中输入/home/tanglx/MyDir1,点击确定,然后输入密码,就可以获取对指定长途文件夹的访问项,具体如下图所示:
https://i-blog.csdnimg.cn/blog_migrate/255fe92035adcf6238234c0e1d9f3721.png
 打开成功后,在“资源管理器”窗口中,会有一个MYDIR1的项,我们利用旁边的“新建文件”,“新建文件夹”,在该目次下创建一个src目次,并且在src下创建一个main.cpp。创建完成之后的详情如下:
https://i-blog.csdnimg.cn/blog_migrate/1623ca358246731469de95ec83172273.png
 Step10:上一步骤,实现了需求3,即对长途文件的访问权限。此一步将讲解实现需求4。首先讲如何进行长途文件下载,我们在本机新建一个文件夹“F:\Remote_MyDir1”,右键点击vscode资源管理器中的main.cpp,选择“下载”,然后指定下载到文件夹“F:\Remote_MyDir1”,点击确定之后,就会发现main.cpp已经被下载到我们指定的目次中了,具体如下:
https://i-blog.csdnimg.cn/blog_migrate/23db8fccf575b355e01374eded72f23d.png
现在下载长途文件OK了,那如何上传呢?我们在刚才创建的本机文件夹 “F:\Remote_MyDir1”中新建一个文件Test.c,然后点击Test.c文件,拖拽到vscode资源管理器中的src下,Test.c便到了长途服务器src目次下。
对于文件夹的上传/下载操纵,和文件类似。至此,需求4变已实现了。
后话:

后话段主要记录一些开端了解时候的花絮,假如按照上述步骤,已经实现全部需求,则后话可以不观看了。但是假如,前面的事变遇阻大概不顺遂,或许此处会给你帮助。
花絮1:
请跳过此行阅读:搜刮标志(Recommends: ssh-import-id but it is not going to be installed)
安装长途机器openssh-server遇阻,我在安装时候报错如下:
https://i-blog.csdnimg.cn/blog_migrate/ef49e9fcb8b22c6a085558b28c99e3f9.png
上述错误意思是,必要安装的openssh-server依赖的openssh-client(=1:7.6p1-4),与本机上自带的openssh-client不同,故而必要安装雷同的openssh-client版本,执行下列命令,安装相应版本之后,再来安装openssh-server才行。
https://i-blog.csdnimg.cn/blog_migrate/9c0dc832299c21d82f20e28d4cbaea0d.png

花絮2:
在Step7中,利用vscode连接长途机器时候,最好保持长途机器可以访问Internet。因为在第一次连接时候,长途机器会下载安装vscode-server,并且将文件放到~/.vscode-server/文件夹中。假如长途机器无法访问外网,那么只能用其他方式,拷贝对应的文件到长途机器进行安装。具体如下:
I.查察本地vscode的提交编号,在vscode界面点击“帮助”--“关于”,会弹出一个对话框,点击复制,获取到对应的提交编号。
https://i-blog.csdnimg.cn/blog_migrate/1dc0166bb201673333241be63042f651.png
II:到下列地址下载对应的vscode-server的包
https://update.code.visualstudio.com/commit:a21a160d630530476218b85db95b0fd2a8cd1230/server-linux-x64/stablex
必要注意的是链接中“commit:”后的内容必要时步骤I中获取的提交编号。我这里填写的是我本机vscode的提交码,看官必要利用本身在步骤I中获取的提交编号。
III:将下载的包vscode-server-linux-x64.tar.gz解压到目次
~/.vscode-server/bin/a21a160d630530476218b85db95b0fd2a8cd1230/
假如不存在该目次,则必要创建,这里必要注意的是,bin的子目次名称,也是利用的在步骤I中获取的提交编号,我这里填写的是我本机vscode的提交码,看官必要利用本身在步骤I中获取的提交编号。
花絮3:
我之前未打仗过vscode,所以我觉得作为一个新人的第一视角是珍贵的,是更利于各位看官初次打仗vscode的。但是在我写这篇文章时候,已然已经配置好了许多东西,但是为了那种新人的第一视角,我还是将有些东西卸载,大概重装了,以给各位看官提供那种新人的第一视角。
但是,在我利用vscode连接长途机器时候,出现了如下题目:
https://i-blog.csdnimg.cn/blog_migrate/f51a662c84fcf2647a6fe32b73adca94.png
请跳过本行阅读,搜刮标志(REMOTE HOST IDENTIFICATION HAS CHANGED!) 
颠末在网上查找答案,发现是由于我之前利用本机连接过另一台虚拟机,其用户名,IP和现在这台虚拟机一模一样,而本机SSH,会保留之前回话的密钥。办理办法是在SSH目次,利用命令行执行
ssh-keygen -R $server_ip
该命令的本意是重置SSH缓存中指定IP的密钥。
我本地执行表示图如下:
https://i-blog.csdnimg.cn/blog_migrate/d170827aa475b6993c1f5add73e98e1b.png
在执行栏密钥缓存清理之后,再进行连接,会出现如下输出,只必要输入yes,然后再输入密码即可正常连接。
https://i-blog.csdnimg.cn/blog_migrate/e8575e5ba0d37e762444e1fc498d4d40.png
同理,假如客户端改变了(机器改变了,但是用户名和ip未发生变化),出现连接题目,服务端也可以利用该命令来对服务端缓存的对应IP的密钥来进行重置。
花絮4:
ubuntu18.04中,用户名一定是小写的。
我原来创建的虚拟机,利用的用户名是大写字母(Tanglx)开头。结果导致我在利用ssh连接ubuntu时候一直写的是大写:
ssh Tanglx@192.168.0.105
这就导致SSH一直验证不外。。。搞了好久,突然发现用户名貌似只能小写。
利用 ssh tanglx@192.168.0.105
就可以过了。
这个事,我搞了2,3个小时。。。无语。。。所以谨此记下。。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: vscode通过Remote-SSH连接长途机器(ubuntu 18.04)