• 利用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 相关软件

    安装步骤可参考文章 SSHFS in Windows。目前 Dokan library ( v0.6.0 ) 可支持 Windows 8 操作系统,但你必须在应用程序启动时以系统管理员身分执行,才可以正常安装!

    image

    2. 加载SSHFS 网络驱动器

    运行 Sshfs Manager 之后,会在系统里出现一个黄色图示

    image

    打开Sshfs Manager,点选 Add 按钮,并配置 SSH 连接信息与磁盘名称 (Drive Name) 与 驱动器号 (Drive Letter)

    image

    mount后的效果如下 :

    image

    相关链接:

  • 相关阅读:
    如何运用领域驱动设计
    如何运用领域驱动设计
    linq Select与SelectMany的区别
    linq GroupBy 多字段分组
    Enumerable<T>的GroupJoin 方法和Join的用法和区别
    使用vscode搭建vue开发环境
    C# Windows服务发布生成步骤
    C#使用表驱动算法实现多层if或者switch语句重构
    记一次服务器重启后应用程序启动出错
    项目中的NLog日志记录
  • 原文地址:https://www.cnblogs.com/shanyou/p/3475420.html
Copyright © 2020-2023  润新知