VS Code(Win10)使用remote-ssh插件远程ubantu

本机Win10,使用Pycharm,之前操作服务器一直使用远程进去用ubantu图形界面的Pycharm,或者用远程工具登录,直接vim来搞一点简单的任务,使用FTP或scp来传递文件,其实也挺好用的,但是因为懒得点几下鼠标进远程,懒得记vim的功能,懒得写scp命令,所以还是想搞一些更适合我的工具,打算把VS Code的远程和Pycharm的远程都弄好,到时候想用哪个用哪个,先记录一下VS Code远程的过程。

介绍

remote-ssh,很显然这是基于SSH (Secure Shell) 的远程连接工具,SSH是一种网络协议,对网络技术有所了解的话,应该对网络协议很熟悉了,下面来大概复习一下,OSI的7层网络结构,每一层都有很多种网络协议,比如我们最常见的链路层的L2TP(经常用来做VPN),网络层的IPv4、IPv6,传输层的TCP、UDP等,SSH是会话层的协议,跟FTP、HTTP、Telnet等是一层的,用来控制、建立、断开一段会话,SSH是一种加密的安全的网络服务。

SSH有两种加密级别:

  • 基于口令的安全验证:要账号密码,还是很麻烦;
  • 基于密匙的安全验证:要生成一对秘钥,一边一个配对,更安全,且不用输入账号密码,棒。

所以目标就是使用remote-ssh插件实现不用输入账号密码的远程连接。

操作

1、Win10 操作

要使用SSH远程,那么,首先,win10、ubuntu上要全部都安装ssh,我们选择OpenSSH,这是SSH协议的一种免费开源的实现。
windows 10系统中下载安装 OpenSSH,很方便,win10自带,如下图,在控制面板——应用与功能——可选功能中:

如果当前可选功能中没有OpenSSH客户端和服务器的话,点击上面的添加功能可以搜索安装,很方便。

安装完成以后,右键我的电脑——管理——服务,右键启动,如果启动是灰的无法点击,就右键属性,选启动类型为手动,然后再启动:



在C:\Windows\System32\OpenSSH中可以查看所有安装了的SSH程序,可以发现scp、sftp都在里面,棒棒的:


现在win10已经安装并启动了OpenSSH,为了做到不用输入账号密码,我们需要生成一对秘钥,一会拿出其中一个给ubantu用:
打开win10自带的PowerShell,输入ssh-keygen,回车三下(使用默认的路径、passphrase),就生成了密钥,找不到自带的powershell可以cmd一下输入powershell:

进入C:\Users\Administrator\.ssh会看到如下图所示的文件,id_rsa.pub就是生成的秘钥中的公钥,一会给ubantu用。

文件夹中可能没有config,我这里有是因为我其实先在VS Code上做了一些操作了,相当于自己提前建立了一个,如果没有config自己建立一个就行,内容如下图,HostName和User对应要连接的服务器IP和用户名,Host 随便起,如下:

其标准为:

Host Ubuntu
  # 这里填入远程主机 IP
  HostName 192.168.x.xxx
  # 这里填入远程主机 ssh 端口
  Port 22
  # 这里填入要在远程主机上登录的用户名
  User ***
  # 这里填你私钥的路径
  IdentityFile c:\Users\brownfeng\.ssh\id_rsa
  # 当需要跳板机的时候就要填这个了
  # 这里代理类型根据需求填 socks4、socks5 或 http
  # 这里 xxx.xxx.xxx.xxx:xxx 表示跳板机 IP:端口
  # 这里 %h %p 无需修改,将自动分别读取 HostName 和 Port 的配置并填入
  #ProxyCommand C:\bin\nmap-7.70\ncat.exe --proxy-type http #--proxy xxx.xxx.xxx.xxx:xxx %h %p

到这里windows上就基本操作完了,下面来操作ubantu。

2、ubantu操作

首先查看Linux是否安装ssh服务:

查看ssh是否安装成功 :ps -ef | grep ssh
开启sshd服务 :service sshd start
开启sshd服务 :/bin/systemctl start sshd.service
查看sshd服务的网络连接情况:netstat -ntlp

如下图表示ssh已经在运行:

现在我们需要将公钥id_rsa.pub复制到服务器.ssh/authorized_keys文件中,执行 cd ~/.ssh进入.ssh文件夹,如果发现.ssh目录找不到,不要慌张。

[root@server ~]# cd ~/.ssh
-bash: cd: /root/.ssh: No such file or directory

.ssh 是记录密码信息的文件夹,如果没有登录过root的话,就没有 .ssh 文件夹,因此登录 localhost ,并输入密码就会生成了。

第一次登录对方主机,系统会出现下面的提示:

  $ ssh user@host
  The authenticity of host 'host' can't be established.
  RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.
  Are you sure you want to continue connecting (yes/no)?

翻译:无法确认host主机的真实性,只知道它的公钥指纹,问你还想继续连接吗?

所谓"公钥指纹",是指公钥长度较长(这里采用RSA算法,长达1024位),很难比对,所以对其进行MD5计算,将它变成一个128位的指纹。上例中是98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d,再进行比较,就容易多了。
很自然的一个问题就是,用户怎么知道远程主机的公钥指纹应该是多少?回答是没有好办法,远程主机必须在自己的网站上贴出公钥指纹,以便用户自行核对。
假定经过风险衡量以后,用户决定接受这个远程主机的公钥。

  Are you sure you want to continue connecting (yes/no)? yes

系统会出现一句提示,表示host主机已经得到认可,输入密码即可。

  Warning: Permanently added 'host,12.18.429.21' (RSA) to the list of known hosts.
  Password: (enter password)

如果密码正确,就可以登录了。
当远程主机的公钥被接受以后,它就会被保存在文件$HOME/.ssh/known_hosts之中。下次再连接这台主机,系统就会认出它的公钥已经保存在本地了,从而跳过警告部分,直接提示输入密码。

发现没有authorized_keys,我们自己创建一个,linux创建文件的方法很多,通过下面的语句把id_rsa.pub复制到ubantu上,作为临时文件:

scp  C:\Users\admin\.ssh\id_rsa.pub ren_wu@192.168.1.11:~/.ssh/tmp.pub

再通过下面的cat语句将其内容复制到authorized_keys文件中:

cat tmp.pub >> authorized_keys

OK了,万事俱备,来登录一下试试,不需要密码:

3、VS Code 操作

安装插件Remote-SSH:

装完后出现了远程控制的按钮:

点进去就是config里配置好的远程的机子,可以配置多个:

点进去就直接远程了,直接用VS Code打开ubantu上的代码,很方便:

不过出了点小状况,运行时候报错:

找不到这个模块,肯定是工作路径的问题,显式的写出来就可以正常运行了:

import sys
sys.path.append(r'/home/ren_wu/PycharmProjects/used_car_est/')  
# vs code 中不加这个路径各种import报错,pycharm应该是自动加入工作目录了,不需要写这句

好了,Win10 上使用VS Code的remote-ssh插件远程ubantu就是这样了。

参考文献:
《SSH原理与运用(一):远程登录》 阮一峰

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容