Windows下写代码并使用 SSHFS快速部署到 Linux 进行调试

前言

很多时候,因为不熟悉vim或者更喜欢Windows下的一些IDE,我们需要在Windows写代码并部署到Linux服务器上进行调试。

相信很多程序员都有这个需求,也有很多自己的解决方法。常见的有使用Git,Samba,NFS,rsync,ftp等等,大部分方法我都尝试过,各有优缺点。一般都需要服务器安装相应的服务端软件,还需要开放指定的端口,像NFS这种端口还动态变化的对使用容器、防火墙的情景就更不友好了。

今天给大家推荐的是SSHFS-Win,无论你的系统是CentOS还是Ubuntu,服务器端不需要安装任何软件,只要支持SSH服务并开放SSH端口就可以了,个人觉得的一种更优雅的解决方案。

一、简介

项目地址SSHFS-Win

SSHFS-Win是SSHFS到Windows的最小端口。在底层,它使用Cygwin作为POSIX环境,使用WinFsp作为FUSE功能。

就这?是的,就这。

二、安装步骤

  • 安装最新版本的WinFsp
  • 安装最新版本的SSHFS-Win,根据操作系统选择x64或x86版本安装程序。

WinFsp下载地址:

SSHFS-Win下载地址:

三、使用方法

安装WinFspSSHFS-Win之后,您可以使用Windows资源管理器或net use命令将网络驱动器映射到SSHFS主机上的目录。

(一)Windows资源管理器

在Windows资源管理中,右击此电脑(win7系统为计算机),选择映射网络驱动器(N),然后使用以下UNC语法输入所需的驱动器号和SSHFS路径:

1
\\sshfs\REMUSER@HOST[!PORT][\PATH]

比如你的服务器IP是:192.168.18.128,用户名是yasin,端口是12580

添加的路径就是下面这样:

1
\\sshfs\yasin@192.168.18.128!12580\

首次映射特定的SSHFS路径时,系统将提示你输入SSHFS用户名和密码,也就是Linux服务器你的用户名和密码,连接成功后你就可以在我的电脑里看到多出一块磁盘,根目录就是你用户的home目录。

这样就可以在Windows下使用IDE直接修改你的代码,SSFHS会将你的修改自动同步到Linux服务器,在Linux端编译运行代码即可。

你可以选择使用Windows凭据管理器保存这些凭据,在这种情况下,将不会再次提示你。

为了取消映射驱动器,请在Windows资源管理器中右键单击驱动器图标,然后选择断开连接。

下面是项目README中的一个演示:

cap

(二)命令行

您可以使用net use命令从命令行映射网络驱动器:

1
2
3
4
5
6
> net use X: \\sshfs\billziss@mac2018.local
The password is invalid for \\sshfs\billziss@mac2018.local.

Enter the user name for 'sshfs': billziss
Enter the password for sshfs:
The command completed successfully.

你可以列出你的网络使用驱动器:

1
2
3
4
5
6
7
8
9
10
$ net use
New connections will be remembered.


Status Local Remote Network

-------------------------------------------------------------------------------
X: \\sshfs\billziss@mac2018.local
WinFsp.Np
The command completed successfully.

最后,你可以按以下方式取消映射驱动器:

1
2
$ net use X: /delete
X: was deleted successfully.

(三)UNC语法

完整的UNC语法如下:

1
2
3
\\sshfs\[LOCUSER=]REMUSER@HOST[!PORT][\PATH]
\\sshfs.r\[LOCUSER=]REMUSER@HOST[!PORT][\PATH]
\\sshfs.k\[LOCUSER=]REMUSER@HOST[!PORT][\PATH]
  • REMUSER是远程用户(即SSHFS主机上的凭据正用于访问的用户)。
  • HOST是SSHFS主机。
  • PORT是SSHFS主机上的远程端口(可选;默认值为22)。
  • PATH是远程路径。 解释如下:
    • sshfs前缀映射到SSHFS主机上的HOST:~REMUSER/PATHREMUSER家目录的相对路径)。
    • sshfs.r前缀映射到SSHFS主机上的HOST:/PATH(即HOST根目录的相对路径,也就是绝对路径)。
    • sshfs.k前缀映射到HOST:~REMUSER/PATH并使用%USERPROFILE%/.ssh/id_rsa(其中%USERPROFILE%是本地Windows用户的家目录)中的ssh密钥。
  • LOCUSER是本地Windows用户(可选; USERNAMEDOMAIN + USERNAME格式)。
    • 请注意,对于最新版本的WinFsp,很少需要使用此功能。

四、Enjoy

你看是不是很简单?服务器端不用安装任何软件,Windows端安装两个小工具,然后输入你的用户名和密码即可!

Enjoy coding now.


Windows下写代码并使用 SSHFS快速部署到 Linux 进行调试
https://www.shangyexin.com/2020/03/23/sshfs/
作者
Yasin
发布于
2020年3月23日
许可协议