Mounting with SSHFS
Create SSH Public Key
Create a public key on you workstation:
aceadmin@ace-ws-17:~$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/aceadmin/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/aceadmin/.ssh/id_rsa. Your public key has been saved in /home/aceadmin/.ssh/id_rsa.pub. The key fingerprint is: 6d:22:99:96:82:c4:7a:e9:53:47:d0:78:24:d7:67:be aceadmin@ace-ws-17 The key's randomart image is: +--[ RSA 2048]----+ | o+o. | | . .+o . o | | o .. + | | o o . + .. | |. + o B S o. | | o . + . oE | | o | | . | | | +-----------------+
Copy the public key using ssh-copy-id
Copy the public key to ace-storage-2 using ssh-copy-id
ssh-copy-id -i ~/.ssh/id_rsa.pub <your_user>@ace-storage-2.cbrain.mcgill.ca
Test SSH login
You should be able to login without requiring your password
Install SSHFS
sudo apt-get install sshfs
Mount Points
A mount point is a directory on your system where the content in a remote directory appears on your workstation. The standard location for mount points on linux and unix systems us `/mnt`.
IMPORTANT: To ensure that mount points continue to work and are still available (not clobbered) when LDAP mounts users home directories to `/home/username` we will avoid mounting file systems to users current home directories and use the standard convention of mounting file systems to the designated temporary mount point `/mnt` as described in the https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard and illustrated in the examples below:
Syntax
(using all lower case)
/mnt/<user name>/< short host name >-< directory >
Mount Point Examples
/mnt/asmith/storage-2-home /mnt/asmith/storage-2-shared /mnt/asmith/storage-2-datasets
/etc/fuse.conf
Ensure that `user_allow_other` is in /etc/fuse.conf and that it is uncommented so that users are able to mount file systems. (Our current LDAP configuration requires this as well).
############################################################################### # Ansible managed: last modified on 2016-04-05 13:09:11 by ace-ws-32 # /etc/fuse.conf # root:fuse 644 # # Allow fuse to use allow_othe and allow_root options - CentOS and Ubuntu # # 0.1 2016-03-31 - ppatterson - Initial file ############################################################################### user_allow_other
2. Connect it to the data directory on ace-storage-2
Syntax
sshfs < user name >@< server name >:/path/to/some/data <mount point>
Example
sshfs asmith@ace-storage-2.cbrain.mcgill.ca:/home/users/asmith /mnt/asmith/storage-2-home
More information and options are described in https://wiki.archlinux.org/index.php/sshfs
Mount Directories Permanently
https://wiki.archlinux.org/index.php/sshfs
Edit the fstab on your workstation
sudo vi /etc/fstab
Add the following
<your_user>@ace-storage-2.cbrain.mcgill.ca:/home/users/<your_user> /mnt/<your_user>/storage2-home fuse.sshfs defaults,_netdev,identityfile=/home/<your_user>/.ssh/id_rsa,uid=<your_UID>,gid=<your_GID>,user,allow_other 0 0 <your_user>@ace-storage-2.cbrain.mcgill.ca:/data1/ACElab_Shared /mnt/<your_user>/storage2-shared fuse.sshfs defaults,_netdev,identityfile=/home/<your_user>/.ssh/id_rsa,uid=<your_UID>,gid=<your_GID>,user,allow_other 0 0 <your_user>@ace-storage-2.cbrain.mcgill.ca:/data1/Raw_Study_Data /mnt/<your_user>/storage2-datasets fuse.sshfs defaults,_netdev,identityfile=/home/<your_user>/.ssh/id_rsa,uid=<your_UID>,gid=<your_GID>,user,allow_other 0 0