0x00 前言

最近不断有同学最近来咨询:之前咱们的Lighthouse教程都是从Linux/Mac笔记本下操作的,能不能出一篇Windows下的实践案例呢?而且,Windows笔记本的环境和远程Linux主机下不完全一致,怎样解决Python代码的编辑/同步和调试运行等问题呢?

如果你也有同样的困惑,看这一篇教程就足够了。

本文将详细地从零开始,介绍如何从Windows10操作系统下远程连接Lighthouse等云服务器,并通过VSCode/SFTP等工具远程编辑执行Python程序。

0x01 服务器准备

服务器准备,依然还是选用咱们的主角:腾讯云轻量应用服务器(Lighthouse)。当然你可以用CVM(云服务器)产品等,也是完全可以的。Lighthouse实例是当下最流行最方便的创建云主机方式,对于跑些小项目用起来最方便。

购买机器

下图是Lighthouse的创建页面,到这里选择一款喜欢的吧->

这里我们创建一台北京地域的镜像为Ubuntu 20.04LTS版本的实例,这是Ubuntu最新的LTS长期维护版本,可以体验更多新特性,后续我们也会在这个系统上做些简单实验。套餐选择上,我们这次以新出的存储型套餐举例,即便时最轻(pian)量(yi)的,也带了200GB的SSD,非常划算。购买流程很简单,需要输入实例名称并选择下时长即可,购买体验非常流畅。

我们创建完成后,可以在实例列表页面看到实例状态,当实例状态为运行中时,点击更多->管理即可进入管理页面了。我们将在管理页面为我们的Lighthouse主机重置密码,以方便后续的SSH登录。

重置密码

Lighthouse实例默认仅能从腾讯云控制台免密登录,其本质是使用了默认密钥。不过,为了咱们后续通过SSH命令进行代理访问,最方便的方法是通过密码登录。

我们需要为我们的实例重置密码,可以在控制台的实例详情页面完成此类操作。我们更新系统默认用户名ubuntu用户的密码。

至此,控制台上全部操作完成,我们可以准备登录机器了。

0x02 Termius

连接登录远端的服务器,一个好用的远程主机终端管理工具是必须的。

虽然Windows10自带/自有的PowerShell、Windows Terminal等软件也能SSH到我们远程的Linux服务器,但是它们的使用体验远不完美。常见的终端管理(SSH客户端)工具而很多如Putty、Xshell等,这里我们推荐一款工具:Termius,它是一款强大的SSH客户端,可以在Windows、Linux、macOS甚至移动设备Android/iOS上使用,界面美观使用方便。另外,Termius除了作为SSH客户端外,还支持主机分组、端口转发、文件传输等多种特性。

在微软的应用商店里就可以搜索到并安装:

termius运行后,点击+ NEW HOST按钮,配置添加服务器的信息,如IP、用户名以及、密码/密钥等。

配置主机IP
配置主机的SSH登录信息

用termius第一次的登录云服务器,通任何SSH客户端一样,需要添加下fingerprint,回车确认即可。

下图示例,用termius首次登录Lighthouse主机后执行命令:

云服务器的登录验证完成,我们开始折腾本地的编辑器吧~

0x03 Visual Studio Code

Visual Studio Code,以下简称VSCode,是微软2015年开源的一款编辑器,支持Windows、Linux和macOS等多个平台,它遵循MIT协议。vscode对代码调试、语法高亮、智能代码补全、代码重构以及,另外由于其还支持插件扩展且社区活跃,VSCode近些年非常受开发人员的青睐,可以说是目前最主流的跨语言通用代码编辑器。

Windows10上安装VSCode也非常容易,官网直接下载即可。这里注意有两种安装选择,UserInstaller和System Installer,它们分别安装在用户主目录(类似C:UsersBrookeAppData)和系统目录下(类似C:Program Files(x86)),单用户使用起来几乎没有区别,根据偏好选择即可。下图是安装界面,添加到PATH中哦我们可以通过code命令打开VSCode。

2020年10月刚刚发布了1.51版本,这次又新加了不少功能如更清晰的固定选项卡、可调整的智能补全窗口、更优化的终端及代码版本控制等等。

其实,VSCode下也有自带的terminal,按Ctrl+`即可打开,个人感觉它在Linux/MacOS下,相比Windows使用上更方便一些。在Windows10下,可以试试结合wsl或gitbash一起使用,使用起来,效果也还可以。但总体体验还是不如上一节的termius。

我们试着可以打开目录Open Folder,这里我们选择F:Codehello目录,并创建编辑第一个文件hello.py

可以看出,VSCode编辑器的风格还是很简约美观的。默认界面中除了主编辑面板,只有菜单栏、快捷按钮边栏、文件浏览器,以及底部状态栏和右侧的缩略展示。

0x04 SFTP插件远端同步代码

上一节中,我们通过VSCode打开目录并创建了代码文件,我们接下来需要将代码同步至远端服务器,并运行。我们这里使用SFTP插件。

安装

打开扩展插件(Extendions)搜索面板,快捷键Ctrl+Shift+X,搜索SFTP,如图安装。

安装过程很快,而且不需要重启编辑器,即时生效。

配置

打开vscode命令面板(Command Palette),快捷键Ctrl+Shift+P ,搜索sftp,可以下拉提示菜单中看到SFTP: Config,点击即可进入sftp的设置编辑界面,其实就是编辑项目目录下的.vscode/sftp.json文件,配置项除了hostportusernamepassword等SSH连接参数外如图:

注意:SFTP必须运行在项目目录中,所以需要先通过open folder打开对应的项目目录。

同步

右键点击左侧边栏(Explorer)中的hello.py,可以看到SFTP插件相关的功能:上传(Upload)、下载(Download)以及和远端的文件对比(Diff with Remote)等等。

另外,如果在配置时打开启了uploadOnSave(如前图所示)选项,则本地文件在保存时将会自动同步上传至云服务器。这个功能有利有弊:一般地,如果本地有和服务器端同样地运行代码的环境(如Linux/wsl下、docker中或者相同版本的python解释器等)推荐不开启这个功能,这样本地可以先测试下再手动上传;如果没有运行环境,开启是最方便的,保存后直接切换到终端运行即可。结合自己习惯综合设置即可。

运行

通过终端远程登陆云服务器,比如我们之前创建地Lighthouse实例,可以验证代码同步无误,试着运行吧。

运行代码不是本篇教程的重点,这里不赘述。我们的目标就是本地编辑,远端运行,因为这样既能最大地发挥本地编辑工具的个性化定制的优势,又能最大化利用远端云服务器的高性能运行环境以及灵活创建/销毁等资源管理的优势。我们的本地Windows主机甚至连Python(解释器)都没有安装,只编辑并保存代码。通过SFTP插件完成自动同步,整个流程是非常清晰且高效的。

0x05 SFTP协议

FTP(File Transfer Protocol, 文件传输协议)相比你不会陌生,它是一个在不同系统间传输文件的主流且传统的方法。而SFTP(SSH File Transfer Protocol, 或者Secure File Transfer Protocol)是一个在SSH协议之上的类似协议,在可靠的数据流(目前是TLS加密数据流)之上提供文件访问、传输和管理等工作。SFTP的好处简单地说就是更加安全,因为它利用了SSH地安全连接。

目前,SFTP已经在大多数场景下基本替代了FTP,而传统的FTP则应该被限制使用在可信的内部网络中。在我们和公有云上的云服务器交互的场景中,所有信息通过公网传输,通过SFTP来加强访问安全性几乎是个必选项。默认情况下,SFTP通过SSH协议来认证双方身份以及建立安全连接,所以能在SSH协议中使用的认证方法也都可以在SFTP中适用,如密码或密钥。

相比FTP,SFTP可以上传文件时保留更多的文件属性(如修改时间戳等),也是一个优势。

另外,SFTP已经被实现为SSHv2的子系统,无需在服务器端启动另外的服务进程,非常方便。注意这点和FTP很不一样,FTP是要在服务器端启动服务并占用特殊端口(通常25)。我们的云服务器相当于SFTP的Server,我们本地的SFTP插件其实就是SFTP的Client,上传/下载的概念也很直接。

0x06 小结

看到这里,你已经和我们一起熟悉了在腾讯云上创建Lighthouse云服务器实例、登录连接,并通过Visual Studio Code的SFTP插件自动同步本地代码。是不是感觉写代码效率更高更好玩了呢?

如果你平时也喜欢用VS Code编辑代码,可以按照这篇教程【5分钟玩转Lighthouse】Theia IDE尝试下Lighthouse新上的Theia IDE 1.5.0应用镜像,这样甚至连本地的VS Code都不用安装了,直接通过浏览器远程编辑服务器端的代码,也是一种全新的体验。

祝你Lighthouse体验愉快,并多和我们一起逐渐发掘Lighthouse的更多新鲜有趣的功能吧!

0x07 参考资料

  • 腾讯云轻量应用服务器
  • termius.com
  • Visual Studio Code
  • github vscode
  • SSH File Transfer Protocol

更多腾讯云服务器技术干货、优惠活动、交流社区,敬请关注「腾讯云服务器」微信公众号(TencentCVM)

mac建立sftp连接_【5分钟玩转Lighthouse】Win10远程连接同步代码相关推荐

  1. centos6安装mysql并远程连接_如何开启phpstudy中mysql的远程连接

    phpstudy是一款非常方便的php集成环境,许多人会使用它作为PHP网站的实验环境.phpstudy中也集成了Mysql数据库,那么集成环境中的mysql数据库如何才能远程连接呢? 通常情况下,实 ...

  2. xshell 秘钥连接_如何使用PuTTY和xshell 分别远程连接linux,并配置秘钥认证

    使用PuTTY 连接并配置密钥认证 第一步:下载PuTTY 下载 .zip   64位的电脑 32位的putty也能用 第二步:配置基本信息 打开 PuTTY 端口默认是22 (端口是可以改的) ip ...

  3. 服务器mysql数据库被人非法连接_如何让mysql数据库允许被远程连接访问

    一.连接远程数据库: 1.显示密码 如:MySQL 连接远程数据库(192.168.5.116),端口"3306",用户名为"root",密码"123 ...

  4. mysql数据库被远程连接_如何让mysql数据库准许被远程连接访问

    第一:更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称'%'. 或 ...

  5. 【Lighthouse教程】Win10远程连接同步代码

    前言 小胡同学最近来咨询:之前咱们的Lighthouse教程都是从Linux/Mac笔记本下操作的,能不能出一篇Windows下的实践案例呢?而且,Windows笔记本的环境和远程Linux主机下不完 ...

  6. 解决使用Navicat等工具进行连接登录mysql的1130错误,无法使用Ip远程连接的问题(mysql为8.0版本)

    解决使用Navicat等工具进行连接登录mysql的1130错误,无法使用Ip远程连接的问题(mysql为8.0版本) 参考文章: (1)解决使用Navicat等工具进行连接登录mysql的1130错 ...

  7. 远程连接linux的mysql_【Linux开启mysql远程连接的设置步骤】 mysql开启远程连接

    相关热词搜索:Linux开启mysql远程连接的设置步骤,linux mysql 远程连接,linux连接mysql数据库, MySQL默认root用户只能本地访问,不能远程连接管理mysql数据库, ...

  8. win10远程连接服务器出现“这可能是由于credssp加密……”的原因及解决办法,win10家庭版无法找到gpedit.msc或者组策略或安全组策略

    win10远程连接服务器出现"这可能是由于credssp加密--"的原因及解决办法,win10家庭版无法找到gpedit.msc或者组策略或安全组策略. 当Windows系统更新之 ...

  9. win10远程连接win7连接不上去的处理办法 发布时间:2020-04-15

    win10远程连接win7连接不上去的处理办法 发布时间:2020-04-15 12:39发布者:系统城-lufang浏览数:1227 很多用户在使用win10远程桌面的时候,想要去连接win7系统的 ...

最新文章

  1. SQL SERVER特殊行转列案列一则
  2. Java多线程(二):Thread类
  3. mysql数据库连接过多的错误,可能的原因分析及解决办法
  4. boost::hana::front用法的测试程序
  5. 01初识鸿蒙_移动通讯技术的发展
  6. jquery.tmplate使用心得
  7. Git 常用命令总结,掌握这些,轻松驾驭版本管理
  8. java语言用数组接收字符_Java基础——数组应用之字符串String类
  9. python类不接受任何参数_python中提示class不接受参数,为什么?
  10. 僵尸存在......在.NET中?
  11. Windows核心编程_窗口透明组件不透明
  12. Testbed软件下载安装使用试用
  13. 前端开发css样式基础篇
  14. mysql execute stmt_mysql_stmt_execute()--MySql数据库
  15. 营救公主的100种方法
  16. 解析改变测试自动化的协作机器人
  17. C++ std::numeric_limits
  18. IDEA插件系列(89):Copy/Paste Stack插件——复制/粘贴工具栈
  19. 记一次集成微信支付的故事
  20. 红米note2位置服务器,红米Note2

热门文章

  1. vmw6.5安装Freebsd8.1桌面gnome
  2. C语言入门篇(二)指针的介绍和运用
  3. Think In Java读书笔记:内部类覆盖及其初始化
  4. 资源日历 踩坑记(二)
  5. 二分查找算法(C#实现)
  6. mysql 语句中的national 、 comment
  7. UIColor设置自定义的颜色不成功问题
  8. 什么是Web Service
  9. 用Entlib的配置程序块遇到的问题
  10. Spring Security OAuth2.0_实现分布式认证授权_转发明文token给微服务_Spring Security OAuth2.0认证授权---springcloud工作笔记153