sshfsはsshプロトコルを利用して安全にリモートホストのディレクトリをマウントできるコマンドです。
SSHFS – Wikipedia
https://en.wikipedia.org/wiki/SSHFS
【検証環境】
■接続元
・CentOS Linux release 7.3.1611 (Core)
・kernel:3.10.0-514.6.1.el7.x86_64
・OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
■接続先
・Red Hat Enterprise Linux Server release 6.8 (Santiago)
・kernel:2.6.32-642.el6.x86_64
・OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
ユーザは接続先にsshログインが可能にして下さい。
- sshfsのインストール
- マウント
- アンマウント
CentOS 7はepel repoからyumでインストールできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# yum info fuse-sshfs Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.tsukuba.wide.ad.jp * epel: mirror.premi.st * extras: ftp.tsukuba.wide.ad.jp * updates: ftp.iij.ad.jp Available Packages Name : fuse-sshfs Arch : x86_64 Version : 2.5 Release : 1.el7 Size : 58 k Repo : epel/x86_64 Summary : FUSE-Filesystem to access remote filesystems via SSH URL : http://fuse.sourceforge.net/sshfs.html License : GPLv2 Description : This is a FUSE-filesystem client based on the SSH File Transfer Protocol. : Since most SSH servers already support this protocol it is very easy to set : up: i.e. on the server side there's nothing to do. On the client side : mounting the filesystem is as easy as logging into the server with ssh. # repoquery --list fuse-sshfs /usr/bin/sshfs /usr/share/doc/fuse-sshfs-2.5 /usr/share/doc/fuse-sshfs-2.5/AUTHORS /usr/share/doc/fuse-sshfs-2.5/COPYING /usr/share/doc/fuse-sshfs-2.5/ChangeLog /usr/share/doc/fuse-sshfs-2.5/FAQ.txt /usr/share/doc/fuse-sshfs-2.5/NEWS /usr/share/doc/fuse-sshfs-2.5/README /usr/share/man/man1/sshfs.1.gz # yum -y install fuse-sshfs (snip) Installed: fuse-sshfs.x86_64 0:2.5-1.el7 Complete! |
接続先ホストのホームディレクトリをmntにマウントしてみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
[matsuoka@centos7 ~]$ pwd /home/matsuoka [matsuoka@centos7 ~]$ mkdir mnt [matsuoka@centos7 ~]$ sshfs matsuoka@192.168.1.1:/home/matsuoka mnt matsuoka@192.168.1.1's password: [matsuoka@centos7 ~]$ df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 38G 2.2G 36G 6% / devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs tmpfs 2.0G 8.6M 2.0G 1% /run tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/sda1 xfs 497M 164M 334M 33% /boot /dev/mapper/centos-home xfs 19G 33M 19G 1% /home tmpfs tmpfs 394M 0 394M 0% /run/user/0 matsuoka@192.168.1.1:/home/matsuoka fuse.sshfs 45G 5.7G 37G 14% /home/matsuoka/mnt [matsuoka@centos7 ~]$ ls -la mnt/ total 24 drwx------ 1 501 501 4096 Oct 22 11:00 . drwx------. 4 matsuoka matsuoka 4096 Feb 3 14:54 .. -rw-r--r-- 1 501 501 18 Dec 22 2015 .bash_logout -rw-r--r-- 1 501 501 176 Dec 22 2015 .bash_profile -rw-r--r-- 1 501 501 124 Dec 22 2015 .bashrc drwxr-xr-x 1 501 501 4096 Jul 15 2010 .gnome2 [matsuoka@centos7 ~]$ touch mnt/test [matsuoka@centos7 ~]$ ls -l mnt/test -rw-rw-r-- 1 501 501 0 Feb 3 15:25 mnt/test |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[matsuoka@centos7 ~]$ fusermount -u mnt [matsuoka@centos7 ~]$ df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 38G 2.2G 36G 6% / devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs tmpfs 2.0G 8.6M 2.0G 1% /run tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/sda1 xfs 497M 164M 334M 33% /boot /dev/mapper/centos-home xfs 19G 33M 19G 1% /home tmpfs tmpfs 394M 0 394M 0% /run/user/0 [matsuoka@centos7 ~]$ ls -la mnt/ total 4 drwxrwxr-x 2 matsuoka matsuoka 6 Feb 3 14:52 . drwx------. 4 matsuoka matsuoka 4096 Feb 3 14:54 .. |
ヘルプ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
$ sshfs -h usage: sshfs [user@]host:[dir] mountpoint [options] general options: -o opt,[opt...] mount options -h --help print help -V --version print version SSHFS options: -p PORT equivalent to '-o port=PORT' -C equivalent to '-o compression=yes' -F ssh_configfile specifies alternative ssh configuration file -1 equivalent to '-o ssh_protocol=1' -o reconnect reconnect to server -o delay_connect delay connection to server -o sshfs_sync synchronous writes -o no_readahead synchronous reads (no speculative readahead) -o sync_readdir synchronous readdir -o sshfs_debug print some debugging information -o cache=BOOL enable caching {yes,no} (default: yes) -o cache_timeout=N sets timeout for caches in seconds (default: 20) -o cache_X_timeout=N sets timeout for {stat,dir,link} cache -o workaround=LIST colon separated list of workarounds none no workarounds enabled all all workarounds enabled [no]rename fix renaming to existing file (default: off) [no]nodelaysrv set nodelay tcp flag in sshd (default: off) [no]truncate fix truncate for old servers (default: off) [no]buflimit fix buffer fillup bug in server (default: on) -o idmap=TYPE user/group ID mapping, possible types are: none no translation of the ID space (default) user only translate UID of connecting user file translate UIDs/GIDs contained in uidfile/gidfile -o uidfile=FILE file containing username:remote_uid mappings -o gidfile=FILE file containing groupname:remote_gid mappings -o nomap=TYPE with idmap=file, how to handle missing mappings ignore don't do any re-mapping error return an error (default) -o ssh_command=CMD execute CMD instead of 'ssh' -o ssh_protocol=N ssh protocol to use (default: 2) -o sftp_server=SERV path to sftp server or subsystem (default: sftp) -o directport=PORT directly connect to PORT bypassing ssh -o slave communicate over stdin and stdout bypassing network -o disable_hardlink link(2) will return with errno set to ENOSYS -o transform_symlinks transform absolute symlinks to relative -o follow_symlinks follow symlinks on the server -o no_check_root don't check for existence of 'dir' on server -o password_stdin read password from stdin (only for pam_mount!) -o SSHOPT=VAL ssh options (see man ssh_config) FUSE options: -d -o debug enable debug output (implies -f) -f foreground operation -s disable multi-threaded operation -o allow_other allow access to other users -o allow_root allow access to root -o auto_unmount auto unmount on process termination -o nonempty allow mounts over non-empty file/dir -o default_permissions enable permission checking by kernel -o fsname=NAME set filesystem name -o subtype=NAME set filesystem type -o large_read issue large read requests (2.4 only) -o max_read=N set maximum size of read requests -o hard_remove immediate removal (don't hide files) -o use_ino let filesystem set inode numbers -o readdir_ino try to fill in d_ino in readdir -o direct_io use direct I/O -o kernel_cache cache files in kernel -o [no]auto_cache enable caching based on modification times (off) -o umask=M set file permissions (octal) -o uid=N set file owner -o gid=N set file group -o entry_timeout=T cache timeout for names (1.0s) -o negative_timeout=T cache timeout for deleted names (0.0s) -o attr_timeout=T cache timeout for attributes (1.0s) -o ac_attr_timeout=T auto cache timeout for attributes (attr_timeout) -o noforget never forget cached inodes -o remember=T remember cached inodes for T seconds (0s) -o intr allow requests to be interrupted -o intr_signal=NUM signal to send on interrupt (10) -o modules=M1[:M2...] names of modules to push onto filesystem stack -o max_write=N set maximum size of write requests -o max_readahead=N set maximum readahead -o max_background=N set number of maximum background requests -o congestion_threshold=N set kernel's congestion threshold -o async_read perform reads asynchronously (default) -o sync_read perform reads synchronously -o atomic_o_trunc enable atomic open+truncate support -o big_writes enable larger than 4kB writes -o no_remote_lock disable remote file locking -o no_remote_flock disable remote file locking (BSD) -o no_remote_posix_lock disable remove file locking (POSIX) -o [no_]splice_write use splice to write to the fuse device -o [no_]splice_move move data while splicing to the fuse device -o [no_]splice_read use splice to read from the fuse device Module options: [iconv] -o from_code=CHARSET original encoding of file names (default: UTF-8) -o to_code=CHARSET new encoding of the file names (default: ANSI_X3.4-1968) [subdir] -o subdir=DIR prepend this directory to all paths (mandatory) -o [no]rellinks transform absolute symlinks to relative |
関連
$ man 8 mount.fuse
$ man fusermount