Linux ssh монтирование папки

Mount remote directory using SSH

Now we’ll create a directory to mount the remote folder in.

I chose to create it in my home directory and call it remoteDir .

Now I ran the command to mount it (mount on home):

sshfs maythux@192.168.xx.xx:/home/maythuxServ/Mounted ~/remoteDir 

I’m a little confused. in the sshfs command, I think that the mountpoint local directory is named remoteDir , and when I’m on the ssh serever, there is a dir /home/maythuxServ/Mounted that is not mounted locally, and I can not tell, or care, whether it’s mounted elsewhere?

I skipped some of these steps under 14.04 when I used the following guide: help.ubuntu.com/community/SSHFS

Configure ssh key-based authentication

Generate key pair on the local host.

Accept all sugestions with enter key.

Copy public key to the remote host:

$ ssh-copy-id -i .ssh/id_rsa.pub user@host 

Install sshfs

Mount remote directory

$ sshfs user@host:/remote_directory /local_directory 

Don’t try to add remote fs to /etc/fstab

Or don’t try to mount shares via /etc/rc.local .

In both cases it won’t work as the network is not available when init reads /etc/fstab.

Install AutoFS

Edit /etc/auto.master

Comment out the following lines

#+/etc/auto.master.d #+/etc/auto.master 

Edit /etc/auto.sshfs

/local_directory -fstype=fuse,allow_other,IdentityFile=/local_private_key :sshfs\#user@remote_host\:/remote_directory 

Remote user name is obligatory.

Start autofs in debug mode

$ sudo service autofs stop $ sudo automount -vf 

Observe logs of the remote ssh server

$ ssh user@remote_server $ sudo tailf /var/log/secure 

Check content of the local directory

You should see contents of the remote directory

Start autofs in normal mode

Stop AutoFS running in debug mode with CTRL-C .

Start AutoFS in normal mode

$ sudo service autofs start 

Still good on Ubuntu 18.04. Used it to mount a directory from a Raspberry Pi 2 on a PC. When issuing sudo automount -vf , if you get 1 remaining in /- it is likely because you have already manually mounted the directory at step Mount remote directory . Rebooting should fix the issue.

Based on my experiments, explicitly creating the fuse group and adding your user to it is NOT required to mount ssh file system.

To summarize, here are the steps copied from this page:

Читайте также:  Adding ssh user linux

$ sudo apt-get install sshfs

2.Create local mount point

3.Mount remote folder /remote/path to /home/johndoe/sshfs-path/

$ sshfs remoteuser@111.222.333.444:/remote/path /home/johndoe/sshfs-path/

$ fusermount -u /home/johndoe/sshfs-path/

sudo apt-get install sshfs

@:  fuse.sshfs delay_connect,_netdev,user,idmap=user,transform_symlinks,identityfile=/home//.ssh/id_rsa,allow_other,default_permissions,rw,nosuid,nodev,uid=1000,gid=1000,nonempty 0 0 

Although it is not answering your question exactly but I just wanted to mention that you can achieve the same goal using «sftp» as well. Just inside your file manager address bar type this command:

sftp://remoteuser@111.222.333.444/remote/path 

An easy way to run sshfs mounts at startup is also by adding it to the root (or another user’s) crontab, like this:

@reboot sshfs remoteuser@111.222.333.444:/remote/path /home/johndoe/sshfs-path/ 

And if you need to add a delay, you can use:

@reboot sleep 60 && sshfs remoteuser@111.222.333.444:/remote/path /home/johndoe/sshfs-path/ 

I would like to warn that, it seems that by default only the user which set up the mount can access the remote directory.

I set up a remote directory, and create a crontab with sudo crontab -e . Later I found out the backup file didn’t write the remote directory at all. Then I found out that I could not cd into the remote disk as root ! So eventually I create the same task with crontab -e and everything works as I expected.

Источник

Как использовать SSHFS для монтирования удаленных каталогов через SSH

SSHFS (SSH Filesystem) — это клиент файловой системы на основе FUSE для монтирования удаленных каталогов через SSH-соединение. SSHFS использует протокол SFTP, который является подсистемой SSH и включен по умолчанию на большинстве серверов SSH.

По сравнению с другими протоколами сетевой файловой системы, такими как NFS и Samba, преимущество SSHFS состоит в том, что он не требует дополнительной настройки на стороне сервера. Чтобы использовать SSHFS, вам нужен только SSH-доступ к удаленному серверу.

Поскольку SSHFS использует SFTP , все передаваемые данные между сервером и клиентом должны быть зашифрованы и расшифрованы. Это приводит к небольшому снижению производительности по сравнению с NFS и более высокой загрузке ЦП на клиенте и сервере.

Из этого туториала Вы узнаете, как установить клиент SSHFS в Linux, macOS и Windows и как смонтировать удаленный каталог.

Установка SSHFS

Пакеты SSHFS доступны для всех основных операционных систем, и установка довольно проста.

Установка SSHFS в Ubuntu и Debian

SSHFS доступен из репозиториев Ubuntu и Debian по умолчанию. Обновите индекс пакетов и установите клиент sshfs, набрав:

sudo apt updatesudo apt install sshfs

Установка SSHFS на CentOS

В CentOS и других производных от Red Hat выполните следующую команду для установки sshfs:

Установка SSHFS на macOS

Пользователи macOS могут установить клиент SSHFS, загрузив пакеты FUSE и SSHFS с сайта osxfuse или через Homebrew:

brew cask install osxfusebrew install sshfs

Установка SSHFS в Windows

Пользователям Windows необходимо установить два пакета: WinFsp и SSHFS-Win.

Читайте также:  Найти ip адрес linux

Монтирование удаленной файловой системы

Следующие инструкции применимы для всех дистрибутивов Linux и macOS.

Чтобы смонтировать удаленный каталог, пользователь SSH должен иметь к нему доступ. Команда монтирования SSHFS принимает следующий вид:

sshfs [user@]host:[remote_directory] mountpoint [options]

Команда sshfs прочитает файл конфигурации SSH и использует настройки для каждого хоста. Если удаленный каталог не указан, по умолчанию используется домашний каталог удаленного пользователя.

Например, чтобы смонтировать домашний каталог пользователя с именем «linuxize» на удаленном хосте с IP-адресом «192.168.121.121», сначала создайте каталог, который будет служить точкой монтирования, это может быть любое место, которое вы хотите:

Затем используйте команду sshfs для монтирования удаленного каталога:

sshfs linux[email protected]:/home/linuxize /home/linuxize/linuxizeremote

Вам будет предложено ввести пароль пользователя. Чтобы не вводить пароль каждый раз при монтировании удаленного каталога, сгенерируйте ключи SSH и настройте вход SSH без пароля .

Теперь вы можете взаимодействовать с каталогами и файлами, расположенными на удаленном сервере, точно так же, как и с локальными файлами. Например, вы можете редактировать, удалять, переименовывать или создавать новые файлы и каталоги.

Если вы хотите навсегда смонтировать удаленный каталог, вам необходимо отредактировать файл /etc/fstab на локальном компьютере и добавить новую запись монтирования. Таким образом, когда ваша система загружается, она автоматически монтирует удаленный каталог.

Чтобы смонтировать удаленный каталог через SSHFS из /etc/fstab , используйте fuse.sshfs в качестве типа файловой системы.

user@host:/remote/dir /local/mountpoint fuse.sshfs defaults 0 0 

При создании постоянного монтирования убедитесь, что вы можете подключить удаленный хост с помощью аутентификации на основе ключа SSH.

Монтирование удаленной файловой системы в Windows

Пользователи Windows могут использовать проводник Windows, чтобы подключить сетевой диск к удаленному каталогу на SSH-сервере.

Откройте проводник Windows, щелкните правой кнопкой мыши «Этот компьютер» и выберите «Подключить сетевой диск». Выберите диск для монтирования и в поле «Папка» введите удаленного пользователя, сервер и путь в следующем формате:

На момент написания этой статьи SSHFS-Win не поддерживает аутентификацию на основе ключей, поэтому удаленный сервер SSH должен быть настроен для принятия аутентификации на основе пароля.

Для получения более подробной информации обратитесь к руководству по SSHFS-Win .

Отключение удаленной файловой системы

Чтобы отсоединить смонтированную файловую систему, используйте команду umount или fusermount после которой fusermount каталог, в котором она была смонтирована (точка монтирования):

fusermount -u /local/mountpoint

Выводы

В этом руководстве вы узнали, как использовать SSHFS для монтирования удаленного каталога через SSH. Это может быть полезно, если вы хотите взаимодействовать с удаленными файлами с помощью приложений на локальном компьютере.

Читайте также:  Move files in linux terminal

Чтобы получить полный список опций sshfs, введите в терминале man sshfs .

Вы также можете ограничить доступ пользователей к их домашнему каталогу, настроив среду SFTP Chroot Jail и изменив порт SSH по умолчанию, чтобы добавить дополнительный уровень безопасности на ваш сервер.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Монтируем удаленную файловую систему через SSH.

Во время работы часто приходится работать с удаленными файлами, часто через ssh. Gnome позволяет подключиться и работать с данными с помощью утилиты Places->Connect to Server, но, к сожалению, таким образом могут работать не все программы… Vim, например, а так как это основной мой редактор — я искал способ сделать это. И нашел 🙂

Все, что написано дальше — касается Linux, в частности Ubuntu Linux.
Итак, способ: смонтировать удаленую систему так же, как вы монтируете локальные диски. Сделать такое возможно с поомщью утилиты sshfs.
Для начала надо ее установить вместе с несколькими зависимостями:

$sudo apt-get install sshfs

Потом нужно добавить себя в группу пользователей fuse. Сделать это надо, потому что программа устанавливвается в системные папки, в которые обычным пользователям доступ запрещен. Так, добавляем себя в группу:

Потом создаем директорию для монтирования, например, на рабочем столе:

Теперь надо выйти с терминала и зайти вновь. Все, теперь мы в группе fuse. Пробуем соединиться с сервером:

$sshfs user@example.com:/stuff ~/Desktop/test_ssh

Если соединение идет не по ключу то, скорее всего, у вас появится запрос на введение пароля с удаленной машины.
Если же вы сразу не получили ошибку fusermount: fuse device not found, try ‘modprobe fuse’ first — проверяйте директорию, там должны появиться файлики :). Если же вылезла ошибка — значит модуль ядра fuse не загрузился автоматом, пробуем загрузить вручную:

Пробуем установить соединение еще раз.
Чтобы отмонтировать это все дело, надо выполнить следующее:

$fusermount -u ~/Desktop/test_ssh

Чтобы каждый раз не вводить такую кучу комманд — создаем(если нету) и редактируем файл ~/.bash_aliases, добавляя в конец такие строчки:

alias testssh=’sshfs user@example.com:/stuff ~/Desktop/test_ssh’
alias testssh_umount=’fusermount -u ~/Desktop/test_ssh’

Теперь вы сможете монтировать удаленную машину командой testssh, а размонтировать — testssh_umount 🙂

ЗЫ Статью сначала перевел с английского на украинский, добавил немного своего и перевел на русский для Хабра 🙂

Источник

Оцените статью
Adblock
detector