Win10中使用VSCode + Remote-SSH + Linux服务器远程开发

VSCode + Remote-SSH + Linux服务器远程开发

VSCode新增加一个Remote-SSH插件,它可以用来打开Linux服务器上的的文件夹!!!

VSC 通过 Remote Development 插件连接上远程服务器,然后打开服务器上的文件夹作为workspace。无需将服务器上的各种头文件和源码拷贝到本地上,我们就能使用包括 IntelliSense (completions)code navigationdebugging 在内的各种功能。最后,我们还能使用编辑器内置的终端操纵服务器,去做一些 build、release 这样的事情.

1. 准好本地机器Windows10系统

安装Win10系统, 默认系统会安装OpenSSH, 如果本地机器没有装, 需要专门安装一下, 注意这里需要安装OpenSSH-Client客户端. 并且在Windows中powershell中使用ssh-keygen.exe生成一对公私钥, 存储在C:\Users\brownfeng\.ssh\文件夹中, 具体步骤如下

具体步骤:

本机操作环境:Windows 10 1909(此版本的系统自带SSH)
远程机器环境: Ubuntu18.04

  1. 打开CMD,当前用户命令下:ssh localhost(目的在于创建.ssh目录)
  2. cd进.ssh文件, 调用ssh-keygen: 生成id_rsa(私钥)id_rsa.pub(公钥)
  3. 进入远程Ubuntu操作环境,用户环境下创建[.ssh]文件夹,cd.ssh文件夹,创建文件[authorized_keys]
  4. 在windows机器上使用, scp命令传送id_rsa.pub文件到远程机器:scp [file_path] [username]@[remote-host]:[.ssh路径]
scp C:\Users\ppfor/.ssh/id_rsa.pub brownfeng@192.168.0.103:/home/brownfeng/.ssh
  1. 登录远程Ubuntu操作环境, 将id_rsa.pub信息导入authorized_keys
  2. cat id_rsa.pub >> authorized_keys
  3. 更改权限
chmod 600 authorized_keys
chmod 700 ~/.ssh
  1. 修改VS code配置文件configWindows环境下路径 ~/.ssh/

2. 在本地机器上安装VSCode

常规插件安装如下:

C/C++
Bracket Pair Colorizer
Chinese (Simplified) ...
CMake
CMake Tools
Trailing Spaces
Indenticator
SFTP

Remote-SSH

其他的配置使用Ctrl+Shift+P,选自setting(JSON)

{
    "remote.SSH.showLoginTerminal": true,
    "window.title": "${dirty}${activeEditorLong}${separator}${rootName}${separator}${appName}",

    "editor.minimap.maxColumn": 40,
    "editor.wordSeparators": "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?·~!¥…()—【】、;:‘’“”,。《》? ",
    "workbench.sideBar.location": "left",
    "editor.fontFamily": "'Source Code Pro', Consolas, 'Courier New', monospace",
    "editor.detectIndentation": false,
    "editor.tabSize": 2,
    "files.trimTrailingWhitespace": true,
    "files.autoGuessEncoding": true,

    // "C_Cpp.default.intelliSenseMode": "gcc-x64",
    // "C_Cpp.default.includePath": [
    //   "/usr/include",
    //   "/usr/local/include",
    //   "${workspaceFolder}/**"
    // ],
    "C_Cpp.clang_format_fallbackStyle": "Google",
    "cmake.configureOnOpen": true,
    "editor.fontSize": 16,
}

3. 准备好远程Linux机器

这里Linux系统选择的是Ubuntu 18.04版本

这里远程机器可以是使VirtualBox中安装的ubuntu18.04, 也或者是同一个网络中的其他Linux机器. 并且Linux机器上需要如下配置:

  1. 检测ssh服务是否启动: ps -axu | grep ssh, 判断是否有sshd服务
  2. 如果没有sshd服务, 需要用sudo apt-get install openssh-server
  3. 如果没有启动, 也可以使用sudo service ssh start 或者/etc/init.d/ssh resart重启
  4. 将前面windows中创建的id_rsa.pub文件拷贝到linux主机中,然后创建一个文件 -- ~/.ssh/authrized_keys. 同时将id_rsa.pub内容拷贝进入authrized_keys文件
  5. 使用vim /etc/ssh/sshd_config,配置远程Linux主机打开SSH密钥登录设置:PubkeyAuthentication yes
PermitRootLogin yes         #允许root认证登录
PasswordAuthentication yes  #允许密码认证

RSAAuthentication yes       #秘钥认证
PubkeyAuthentication yes    #公钥认证

拷贝方法可以用cat id_rsa.pub >> ~/.ssh/authorized_keys
当有多台本地机器都要连接远程机器怎么办?只用将本地机器的公钥 append 到 authorized_keys 中就行。

4. 开始远程连接

在Windows机器上打开VSCode, 然后点击界面最左边的 Remote-SSH, 然后点击点击左上方 CONNECTION 窗口中的蓝字 Configure,并选择包含 .ssh\config 的配置文件, 并且在配置文件中填入:

Host Ubuntu
  # 这里填入要在远程主机上登录的用户名
  User brownfeng
  # 这里填入远程主机 IP
  HostName 192.168.x.xxx
  # 这里填入远程主机 ssh 端口
  Port 22
  # 这里填你私钥的路径
  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 10 的 openSSH 里没有自带的用于支持 ProxyCommand 的工具,所以我们需要额外下载 ncat.exe 或 connect.exe。由于笔者在尝试 connect.exe 的时候遇到了无从解决的错误,所以这里仅介绍了 ncat.exe 的使用方式。这里假设你下载了(传送门)并解压到了 c:\bin。所以你可以通过 C:\bin\nmap-7.70\ncat.exe 找到 ncat.exe。

此时已经在VSCode中重启打开窗口,远程连接上了Linux中的内容.

其他参考

参考

https://zhuanlan.zhihu.com/p/100759746
https://blog.csdn.net/sixdaycoder/article/details/89850064
https://blog.csdn.net/maokelong95/article/details/91801944
https://www.zhihu.com/question/30315894/answer/928959062
https://www.baidu.com/link?url=2S1ImETasuzCgi_1SzolRpvTlC-9g5Ma2jTPd7kTez834S-GicesjpUbJIK-Z9I9&wd=&eqid=dbdfd12f00056500000000055e3fe011

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

推荐阅读更多精彩内容