利用SSH Filesystem实现远程文件系统
远程文件系统的访问有很多种不同的实现方式,一些常见的连接方式比其它特定情况下的更有用。最著名的一个例子就是微软的通用互联网文件系统(CIFS),它可以容许微软Windows“映射网络驱动器”并利用资源管理器对网络进行“浏览”。另一个是最早由太阳计算机系统开发的网络文件系统(NFS),作为美国电话电报公司开发的UNIX系统配置已经有15年的历史了。尽管还存在几十种其他的选择,但这两种系统占据了网络文件系统的主流。NFS 默认要在拥有 root 权限下才能挂载 (mount) 进来,另外则是使用 NFS 使用 RPC ( portmap 或 rpcbind ) 服务来做端口映射 (Port Mapping),也代表防火墙也要多一层设置,为了安全总有那么一点不方便。对于安装了Openssh的系统来说,实际上这包含了几乎所有的开源类Unix操作系统,SSH Filesystem—作为可验证的方便安全的网络文件系统,是用来访问远程计算机上存储数据的完美选择,甚至于连在 Windows 下都可以自由挂载远程 Linux 账号下的任意一个文件夹,真的非常方便。
SSH Filesystem是基于ssh的,所以需要在客户端计算机上安装和使用sshFS的话,就需要安装Openssh。几乎所有的Linux主要发行版本和BSD Unix操作系统,在默认配置下都已经安装了Openssh的,所以你不会需要单独安装它。此外,服务器端—你希望能够从本地客户端系统访问的计算机中的文件系统—需要运行Openssh服务器进程。
SSH Filesystem也是基于FUSE,也就是所谓的“用户空间文件系统”。FUSE在类Unix系统中提供了一个API,可以用于建立高级别的文件系统,并且可以实现不需要root权限连接的安全管理。幸运的是,主要的开放源代码类Unix操作系统的软件管理系统都应该为你提供了自动处理功能。
如何在 Linux 下通过 sshfs 挂载远程目录
1. 安装 sshfs
CentOS 6.3 ( 在CentOS 下,使用者必须加入 fuse组才能使用 FUSE 功能 )
yum install fuse-sshfs
usermod -a -G fuse username
2. 建立挂载点 (也就是要从远程对应到本机哪个文件夹)
请注意: 如果用一般使用者身分执行时,该挂载点目录的拥有者必须为使用者自己!
sshfs username@hostname:/path/to/folder /path/to/local/folder
3. 卸载 sshfs 挂载
fusermount -u /path/to/local/folder
下面演示Azure上2台CentOS主机上加载sshfs文件
[azureuser@mono ~]$ sudo yum install fuse-sshfs
[sudo] password for azureuser:
Not using downloaded repomd.xml because it is older than what we have:
Current : Fri Apr 26 20:58:04 2013
Downloaded: Fri Apr 26 20:48:40 2013
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package fuse-sshfs.x86_64 0:2.4-1.el6 will be installed
--> Processing Dependency: fuse >= 2.2 for package: fuse-sshfs-2.4-1.el6.x86_64
--> Processing Dependency: libfuse.so.2(FUSE_2.7)(64bit) for package: fuse-sshfs-2.4-1.el6.x86_64
--> Processing Dependency: libfuse.so.2(FUSE_2.6)(64bit) for package: fuse-sshfs-2.4-1.el6.x86_64
--> Processing Dependency: libfuse.so.2(FUSE_2.5)(64bit) for package: fuse-sshfs-2.4-1.el6.x86_64
--> Processing Dependency: libfuse.so.2(FUSE_2.4)(64bit) for package: fuse-sshfs-2.4-1.el6.x86_64
--> Processing Dependency: libfuse.so.2(FUSE_2.2)(64bit) for package: fuse-sshfs-2.4-1.el6.x86_64
--> Processing Dependency: libfuse.so.2()(64bit) for package: fuse-sshfs-2.4-1.el6.x86_64
--> Running transaction check
---> Package fuse.x86_64 0:2.8.3-4.el6 will be installed
---> Package fuse-libs.x86_64 0:2.8.3-4.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
fuse-sshfs x86_64 2.4-1.el6 epel 52 k
Installing for dependencies:
fuse x86_64 2.8.3-4.el6 base 71 k
fuse-libs x86_64 2.8.3-4.el6 base 74 k
Transaction Summary
================================================================================
Install 3 Package(s)
Total download size: 198 k
Installed size: 553 k
Is this ok [y/N]: y
Downloading Packages:
(1/3): fuse-2.8.3-4.el6.x86_64.rpm | 71 kB 00:00
(2/3): fuse-libs-2.8.3-4.el6.x86_64.rpm | 74 kB 00:00
(3/3): fuse-sshfs-2.4-1.el6.x86_64.rpm | 52 kB 00:00
--------------------------------------------------------------------------------
Total 236 kB/s | 198 kB 00:00
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Importing GPG key 0x0608B895:
Userid : EPEL (6) <epel@fedoraproject.org>
Package: epel-release-6-8.noarch (installed)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : fuse-2.8.3-4.el6.x86_64 1/3
Installing : fuse-libs-2.8.3-4.el6.x86_64 2/3
Installing : fuse-sshfs-2.4-1.el6.x86_64 3/3
Verifying : fuse-sshfs-2.4-1.el6.x86_64 1/3
Verifying : fuse-libs-2.8.3-4.el6.x86_64 2/3
Verifying : fuse-2.8.3-4.el6.x86_64 3/3
Installed:
fuse-sshfs.x86_64 0:2.4-1.el6
Dependency Installed:
fuse.x86_64 0:2.8.3-4.el6 fuse-libs.x86_64 0:2.8.3-4.el6
Complete!
[azureuser@mono ~]$ sudo usermod -a -G fuse azureuser
[azureuser@mono ~]$ sudo mkdir /usr/local/youhaoda
[azureuser@mono ~]$ sudo sshfs azureuser@youhaoda.cloudapp.net:/usr/local/src /usr/local/youhaoda
The authenticity of host 'youhaoda.cloudapp.net (168.63.212.151)' can't be established.
RSA key fingerprint is c7:fb:53:84:ac:13:74:0b:08:55:b4:06:34:57:22:7c.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': yes
azureuser@youhaoda.cloudapp.net's password:
[azureuser@mono ~]$ ls /usr/local/youhaoda -l
ls: ÎÞ·¨·ÃÎÊ/usr/local/youhaoda: ȨÏÞ²»¹»
[azureuser@mono ~]$ sudo ls /usr/local/youhaoda -l
×ÜÓÃÁ¿ 82004
drwxr-xr-x. 1 root root 4096 8ÔÂ 2 17:21 jexus-5.4.3
-rw-r--r--. 1 root root 179047 8ÔÂ 6 07:44 jexus-5.4.3.tar.gz
drwxrwxrwx. 1 1000 users 4096 9ÔÂ 21 03:21 libgdiplus-2.10
-rw-r--r--. 1 root root 1962898 2ÔÂ 14 2011 libgdiplus-2.10.tar.bz2
drwxr-xr-x. 1 1000 users 4096 9ÔÂ 21 03:27 mono-3.2.3
-rw-r--r--. 1 root root 81810387 9ÔÂ 17 23:08 mono-3.2.3.tar.bz2
如何在 Windows 下通过 sshfs 加载远程目录
1. 安装 sshfs 相关软件
- 安装 Dokan library ( 直接下载 DokanInstall_0.6.0.exe 安装文件 )
- 安装 win-sshfs 工具 ( 下载链接 )
安装步骤可参考文章 SSHFS in Windows。目前 Dokan library ( v0.6.0 ) 可支持 Windows 8 操作系统,但你必须在应用程序启动时以系统管理员身分执行,才可以正常安装!
2. 加载SSHFS 网络驱动器
运行 Sshfs Manager 之后,会在系统里出现一个黄色图示
打开Sshfs Manager,点选 Add 按钮,并配置 SSH 连接信息与磁盘名称 (Drive Name) 与 驱动器号 (Drive Letter)
mount后的效果如下 :
相关链接:
- SSH Filesystem
- win-sshfs - SSH(SFTP) filesystem for Windows ( GitHub )
- Dokan library - user mode file system for windows ( GitHub )
- FUSE: Filesystem in Userspace
利用SSH Filesystem实现远程文件系统的更多相关文章
- [视频教程]利用SSH隧道进行远程腾讯云服务器项目xdebug调试
我的远程服务器是腾讯云的ubuntu系统机器,本地我的电脑系统是deepin的系统,使用的IDE是vscode.现在就来使用本地的IDE来调试腾讯云中为网站项目实现逻辑是访问网站域名后,请求被转发给腾 ...
- sshfs远程文件系统挂载
注意:转载请注明出处: http://www.programfish.com/blog/?p=145 sshfs简介: 一种通过SSH协议访问远程文件系统的用户空间文件系统.可以把远程主机上的文件系统 ...
- 利用SSH隧道技术穿越内网访问远程设备
本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/11899478.html 通常,我们用于调试的计算机无法远程访问位于局域网中的待调试设备. ...
- Ubuntu SSH 客户端的应用 | sshfs映射远程文件系统为本地磁盘
SSH是指Secure Shell,是一种安全的传输协议. Ubuntu客户端通过SSH访问远程服务器 ,以下步骤是客户端 的配置方法: 1. sudo apt-get install ssh 2. ...
- Linux实现利用SSH远程登录服务器详解
Linux实现利用SSH远程登录服务器详解 http://www.111cn.net/sys/linux/55152.htm
- 利用SSH端口转发实现远程访问内网主机远程桌面(一) 建立SSH转发
近期家里更换了移动的宽带,拨号后拿到的是10开头的内网IP,就不能像之前一样通过路由器的端口映射实现从外网访问主机的远程桌面.这种情况下可以利用一台具有公网IP的服务器充当中转,利用SSH的隧道转发功 ...
- 利用SSH端口转发实现跨机器直接访问
在实际项目测试中经常会遇到数据库操作,但是因为公司安全问题,访问数据库往往需要通过跳板机.但通过跳板机,测试效率大打折扣,因此通过使用SSH端口转发,从而达到跨机器直接访问数据库.实际项目中的应用会比 ...
- 利用 ssh 的用户配置文件 config 管理 ssh 会话
http://dhq.me/use-ssh-config-manage-ssh-session 利用 ssh 连接远程服务器,一般都要输入以下类似命令: 1 ssh user@hostname -p ...
- [转]利用ssh传输文件
利用ssh传输文件 http://www.cnblogs.com/jiangyao/archive/2011/01/26/1945570.html 在linux下一般用scp这个命令来通过ssh传输文 ...
随机推荐
- PHP发送短信功能
发送短信的功能主要在于获得短信接口后,在函数中模仿用户行为,例如浏览器跳转输出短信接口的链接. 需要运用的函数为 curl_init(); curl_setopt(); curl_exec(); cu ...
- Foreach 原理
public class Person { private string[] friends = { "asf", "ewrqwe", "ddd&qu ...
- RedHat Enterprise Linux 6.4 使用 Centos 6 的yum(转)
概述 redhat的yum源需注册付费,费时费力,整理RedHat yum 安装CentOS的方法. 安装系统文件 系统:RedHat Enterprise Linux 6.4-x86_64 md5: ...
- 【Java EE 学习 73】【数据采集系统第五天】【参与调查】【导航处理】【答案回显】【保存答案】
一.参与调查的流程 单击导航栏上的“参与调查”按钮->EntrySurveyAction做出相应,找到所有的Survey对象并转发到显示所有survey对象的页面上供用户选择->用户单击其 ...
- redis数据类型及使用场景
Redis数据类型 String: Strings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字. 常用命令: set,get,decr,incr,mge ...
- 分享一个分布式消息总线,基于.NET Socket Tcp的发布-订阅框架,附代码下载
一.分布式消息总线 在很多MIS项目之中都有这样的需求,需要一个及时.高效的的通知机制,即比如当使用者A完成了任务X,就需要立即告知使用者B任务X已经完成,在通常的情况下,开发人中都是在使用者B所使用 ...
- 【手把手教你全文检索】Apache Lucene初探
PS: 苦学一周全文检索,由原来的搜索小白,到初次涉猎,感觉每门技术都博大精深,其中精髓亦是不可一日而语.那小博猪就简单介绍一下这一周的学习历程,仅供各位程序猿们参考,这其中不涉及任何私密话题,因此也 ...
- Servlet读取Excel标准化数据库过程记录
完成数据库的连接 获取连接参数 拷贝1.数据库URL 2.驱动程序类 3.用户 编写Servlet 1.创建连接对象 Connection con = null; PreparedStatement ...
- python 爬虫(五)
下载媒体文件 I 使用urllib.request.urlretrieve方法可以下载文件存为指定文件 from urllib.request import urlretrieve from urll ...
- wpf 触发器理解
(1)属性触发器:其对应的类是Trigger.它在特定关联属性发生变化时被触发.一个属性的更改会在另一个属性中触发即时或动态更改. (2)数据触发器:其对应的类是DataTrigger.它在特定的CL ...