专栏首页云计算教程系列通过SSHFS远程挂载文件夹,方便远程coding!
原创

通过SSHFS远程挂载文件夹,方便远程coding!

通过SSHFS远程挂载文件,方便远程coding!

介绍

很多情况下,从服务器传输文件会得很麻烦。想象一下开发使用场景,您正本地为服务器编写软件,并自己将脚本重复上传到服务器进行测试。这可能会变得非常麻烦。但是,有一种方法可以将VPS文件系统挂载到本地计算机上,这样您就可以动态地进行更改并将您的服务器的文件。在本文中,我们将向您展示如何做到这一点。

安装SSHFS

在Ubuntu / Debian上安装

SSHFS是基于Linux的软件,需要安装在本地计算机上。在基于Ubuntu和Debian的系统上,它可以通过apt-get安装。

sudo apt-get install sshfs

在Mac OSX上安装

您可以在Mac OSX上安装SSHFS。您需要从这里下载FUSE和SSHFS

在Windows上安装

要在Windows中安装SSHFS,您需要从google代码存储库中获取最新的win-sshfs软件包。可以在下面找到下载链接。下载软件包后,双击以启动安装程序。系统可能会提示您下载其他文件,如果是这样,安装程序将下载.NETFramework 4.0并安装。

下载地址:https://github.com/feo-cz/win-sshfs/releases

挂载远程文件系统

以下说明适用于Ubuntu/Debian和OSX。有关Windows系统的说明,请参阅本教程的结尾。

首先,我们需要创建一个本地目录来安装服务器的文件系统。

sudo mkdir /mnt/droplet <--replace "droplet" whatever you prefer

现在我们可以使用sshfs命令在本地挂载文件系统。如果您的VPS是使用密码登录创建的,则以下命令将执行此操作。在此步骤中,系统将要求您提供虚拟服务器的root密码。

sudo sshfs -o allow_other,defer_permissions root@xxx.xxx.xxx.xxx:/ /mnt/droplet

如果您的服务器配置为通过ssh密钥授权进行登录,则需要告诉sshfs命令使用您的公钥。系统会要求您输入在使用ssh-keygen创建密钥期间使用的密码。

sudo sshfs -o allow_other,defer_permissions,IdentityFile=~/.ssh/id_rsa root@xxx.xxx.xxx.xxx:/ /mnt/droplet

现在,您可以使用服务器上的文件,就好像它是连接到本地计算机的物理设备一样。例如,如果移动到本地计算机上的/mnt /droplet目录,在本地创建文件,该文件将同步显示在虚拟服务器上。同样,您可以将文件复制到/mnt/droplet文件夹中,它们将在后台上传到您的服务器。

请务必注意,此过程仅为您的服务器提供临时挂载点。如果虚拟服务器或本地计算机已关闭或重新启动,则需要使用相同的过程再次挂载它。

卸载远程文件系统

当您不再需要安装点时,您只需使用该命令卸载它即可

sudo umount /mnt/droplet

永久挂载远程文件系统

SSHFS还允许为远程文件系统设置永久挂载点。这将设置一个挂载点,就算你重新启动本地计算机和服务器它也持续存在。为了设置永久挂载点,我们需要编辑本地计算机上/etc/fstab文件,以便在每次启动系统时自动挂载文件系统。

首先,我们需要用文本编辑器编辑/etc/fstab文件。

sudo nano /etc/fstab

添加以下条目

sshfs#root@xxx.xxx.xxx.xxx:/ /mnt/droplet

保存对/etc/fstab文件的更改并在重新启动。

应该注意的是,在本地永久安装VPS文件系统存在潜在的安全风险。如果您的本地计算机受到攻击,它可能会直接感染到您的服务器。因此,建议不要在生产服务器上设置永久挂载。

使用Win-SSHFS在Windows上挂载远程文件系统

启动win-sshfs程序后,您将看到一个界面,使安装远程文件共享的过程变得简单。

  • 步骤一:单击窗口左下角的“添加”按钮。
  • 步骤二:在“驱动器名称”字段中输入文件共享的名称。
  • 步骤三:在主机字段中输入您的服务器的IP。
  • 步骤四:输入您的SSH端口。(除非您手动更改了SSH端口,否则保留为端口22)。
  • 步骤五:在“用户名”字段中输入您的用户名。(除非您手动设置了用户帐户,否则您将root在此字段中输入)。
  • 步骤六:在密码字段中输入您的SSH密码。(请注意,在Windows上,您需要为密码登录配置服务器,而不能使用密钥)。
  • 步骤七:在“目录”字段中输入所需的安装点。(输入/从root用户安装文件系统。同样,您可以输入/var/www~/用于您的主目录)。
  • 步骤八:选择您希望Windows用于服务器文件系统的驱动器号。
  • 步骤九:单击“Mount”按钮以连接到服务器并挂载文件系统。

现在,您的虚拟服务器文件系统将通过“我的电脑”作为您在步骤八中选择的驱动器号提供。

远程挂载点的用法

远程安装的方法与本地安装的存储类似:您可以创建,复制,移动,编辑,压缩或执行可以在服务器上执行的任何文件操作,但是您无法在远程服务器上启动程序或使用脚本。

一个典型用法是,如果您在VPS上托管网站,并且需要定期更改网站。在本地挂载文件系统允许您启动您希望编辑站点的任何代码编辑器,IDE或文本编辑器,您所做的任何更改将在本地计算机上生成后立即反映在虚拟服务器上。

类似地,在用于编码项目的测试环境在服务器上,它允许非常简易的代码修改,可以立即测试而无需在本地和远程修改代码。


参考文献:《How To Use SSHFS to Mount Remote File Systems Over SSH》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何在Ubuntu 16.04上安装Elasticsearch,Logstash和Kibana(ELK Stack)

    在本教程中,我们将介绍在Ubuntu 16.04上安装Elasticsearch ELK Stack(即Elasticsearch 2.3.x,Logstash...

    黑色技术
  • 如何在Ubuntu 14.04上使用wrk对HTTP延迟进行基准测试

    本文重点介绍称为开源HTTP基准测试工具WRK,它可以在高负荷下测量HTTP服务的延迟。

    黑色技术
  • 如何使用Spiped在Ubuntu 16.04上加密到Redis的流量

    Redis是一个开源键值数据存储,使用内存存储模型和可选的磁盘写入来实现持久性。它具有事务,发布/订阅消息传递模式以及其他功能之间的自动故障转移功能。Redis...

    黑色技术
  • Centos7 下的防火墙端口配置

    查看所有打开的端口: firewall-cmd --zone=public --list-ports

    海向
  • centos7防火墙命令

    安装Firewall命令: yum install firewalld firewalld-config

    薛定喵君
  • Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus

    对于Android系统来说,消息传递是最基本的组件,每一个App内的不同页面,不同组件都在进行消息传递。消息传递既可以用于Android四大组件之间的通信,也可...

    美团技术团队
  • Java设计模式-装饰者模式

    装饰者模式:在不改变原类文件以及不使用继承的情况下,动态地将责任附加到对象上,从而实现动态拓展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对...

    蒋老湿
  • 设计模式之命令模式-引导篇及原理

    项目背景:随着物联网的流行以及智能化家具普及。一个遥控器可以管控家里所有设备(家电等)也很正常了。

    凯哥Java
  • http请求过程及性能优化分析

    版权声明:本文为博主原创文章,未经博主允许不得转载。 ...

    j_bleach
  • Java 设计模式系列(10) —— 装饰器模式

    装饰器模式的定义: 动态的给一个对象添加额外的职责,就功能来说,装饰模式相比子类更为灵活

    求和小熊猫

扫码关注云+社区

领取腾讯云代金券

,,