LINUX.ORG.RU

Проблема с монтированием sshfs в Fedora 25 (GNOME)

 , , , ,


2

4

Перепробовал множество вариантов, предложенных гуглом. Ни один не хочет работать - после загрузки смотрю в df -hT - и никакого sshfs нету в списке. Само монтирование предполагается делать с помощью /etc/fstab. RSA-ключи сделал, в файловом менеджере и в ssh-сеанс могу зайти без введения пароля теперь. На данный момент проблему решил при помощи создания .desktop файла в автозагрузке, но хотелось бы разобраться с этим /etc/fstab. Есть ли тут пользователи Fedora (других дистрибутивов), которые столкнулись с такой же проблемой? На данный момент мой /etc/fstab выглядит так:

[pushistiq@localhost ~]$ cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Tue Nov 29 02:54:01 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/luks-f98ce45d-340b-4c41-8e73-d1443497c081 /                       ext4    defaults,x-systemd.device-timeout=0 1 1
UUID=e75301db-ce1d-491d-b9a0-fe73b00049c8 /boot                   ext4    defaults        1 2
/dev/mapper/luks-cb830964-b4f1-4a39-bdab-8a862a0a4470 /home                   ext4    defaults,x-systemd.device-timeout=0 1 2
/dev/mapper/luks-fbecc0b6-5f1b-4add-a7f7-c9d17db3ff8d swap                    swap    defaults,x-systemd.device-timeout=0 0 0
UUID=50588552-8b02-48b7-b2ed-6a0f320c30db	/mnt/Container2TB	ext4	defaults	0	0
UUID=8a8f70ca-66d2-4a8b-8fed-45d237e8f7f0	/mnt/Container3TB	ext4	defaults	0	0
sshfs#pushistiq@192.168.1.41:/var/lib/transmission/Downloads/	/mnt/pushistiq-3vi-Downloads	fuse	defaults,allow_other	0	0
Как решали проблему? Сразу пишу, sshfs#... и fuse - это ещё один перепробованный вариант. Пробовал и без sshfs# в начале и с fuse.sshfs, вместе fuse - результат один и тот же.

Решение
1. Раскомментировать строчку в /etc/fuse.conf — user_allow_other
2. Добавить опцию монтирования в /etc/fstab — allow_other
3. Перезагрузиться :)
Всё сделанное ранее с ключами было не лишним, проблема была только в fuse.conf и опцией allow_other. В данный момент, содержимое fstab такое:
#
# /etc/fstab
# Created by anaconda on Tue Nov 29 02:54:01 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/luks-f98ce45d-340b-4c41-8e73-d1443497c081 /                       ext4    defaults,x-systemd.device-timeout=0 1 1
UUID=e75301db-ce1d-491d-b9a0-fe73b00049c8 /boot                   ext4    defaults        1 2
/dev/mapper/luks-cb830964-b4f1-4a39-bdab-8a862a0a4470 /home                   ext4    defaults,x-systemd.device-timeout=0 1 2
/dev/mapper/luks-fbecc0b6-5f1b-4add-a7f7-c9d17db3ff8d swap                    swap    defaults,x-systemd.device-timeout=0 0 0
UUID=50588552-8b02-48b7-b2ed-6a0f320c30db	/mnt/Container2TB	ext4	defaults	0	0
UUID=8a8f70ca-66d2-4a8b-8fed-45d237e8f7f0	/mnt/Container3TB	ext4	defaults	0	0
pushistiq@192.168.1.41:/var/lib/transmission/Downloads/ /mnt/pushistiq-3vi-Downloads/	fuse.sshfs	defaults,_netdev,allow_other	0	0

Всё, теперь работает чудесно! Всем спасибо за помощь!
P.S.Не понимаю, почему на форумах и руководствах отсутствал пункт про fuse.conf.

Здесь тоже 5 человек поблагодарило за рабочее решение.

Там указан путь к ключу, ты это пробовал? Аутентификация-то как-то должна производиться.

Jayrome ★★★★★ ()
Последнее исправление: Jayrome (всего исправлений: 1 )
Ответ на: комментарий от Jayrome

Да, естественно. Пробовал даже вариант с .pub - который не указан там, почему-то.

Desmond_Hume ★★★★★ ()

У меня вот так реализовано:

gvfs-mount ssh://user@host

ArcFi ()

Строчка то правильная? по mount -a монтируется?

Можешь попробовать добавить _netdev в опции монтирования.

Deleted ()
Ответ на: комментарий от Deleted

_netdev тоже добавлял (defaults,_netdev - был вариант) - никакого результата.

Desmond_Hume ★★★★★ ()

У меня такое ощущение, будто:
a) в Fedora реализация sshfs через /etc/fstab в поломанном состоянии;
б) вариант с монтированием через /etc/fstab изначально не верный (по крайней мере, для дистрибутива Fedora)

Desmond_Hume ★★★★★ ()
Ответ на: комментарий от Deleted

На mount -a реагирует, выпрашивая пароль для сервера, хотя rsa-ключ скормлен и пароля не просят при попытке примонтирования через sshfs, а также при монтировании через файловый менеджер (нажимаю на эту точку, добавленную в Избранное и через 2 секунды вижу содержимое, без ввода пароля). Возможно, нужно в fstab прописать пароль?

Desmond_Hume ★★★★★ ()
Последнее исправление: Desmond_Hume (всего исправлений: 1 )
Ответ на: комментарий от Jayrome

Да вот и я об этом подумал. Неправильно это (впрочем, / у меня зашифрована, так что...). Видимо, придётся довольствоваться пока .desktop-файлом). Правда, он отваливается, после захода в систему после ждущего режима - поставил выполнение команды sshfs по горячим клавишам)). Костыли, конечно, ну а что поделаешь. Надо будет про autofs почитать на досуге. Может это выход.

Desmond_Hume ★★★★★ ()
Последнее исправление: Desmond_Hume (всего исправлений: 1 )
Ответ на: комментарий от Jayrome

Наверное, да, придётся учиться пользоваться иркой.

Desmond_Hume ★★★★★ ()
Ответ на: комментарий от Desmond_Hume

Раз спрашивет пароль, значит не может ключ найти. Он у тебя в /root/.ssh лежит и называется id_rsa?

Deleted ()
Ответ на: комментарий от Deleted

Нет, он лежит в /home/$USER/.ssh
Папки /root/.ssh нет в наличии. Root не может достучаться до папки /home/$USER/.ssh, думаешь?
Сорри, соврал. Есть такая папка, но ключа там нет, только файл known_hosts — его содержимое идентично тому, что содержится в /home/$USER/.ssh/known_hosts.

Desmond_Hume ★★★★★ ()
Последнее исправление: Desmond_Hume (всего исправлений: 3 )
Ответ на: комментарий от Desmond_Hume

rsa-ключ скормлен и пароля не просят при попытке примонтирования через sshfs

sshfs ты запускаешь от имени своего юзера, так? А `mount -a` и обработка /etc/fstab при загрузке идут от имени root'а. Таким образом, необходимо и достаточно сделать

su -
ssh-keygen -f .ssh/pushistiq@192.168.1.41 -P ''
ssh-copy-id -i .ssh/pushistiq@192.168.1.41.pub pushistiq@192.168.1.41
cat >> .ssh/config <_EOF

Host 192.168.1.41
IdentityFile ~/.ssh/%r@%h
_EOF
(то есть сгенерить от рута пару ключей, публичный добавить в authorized_keys для pushistiq@192.168.1.41 и объяснить клиенту ssh, где лежит секретный ключ).

dexpl ★★★★★ ()
Последнее исправление: dexpl (всего исправлений: 1 )

У меня в 24 федоре прекрасно работает sshfs#user@host:remotedir/ /mnt/sshfs/localdir fuse rw,nosuid,nodev,compression=yes,reconnect,noauto,user 0 0

legolegs ★★★★★ ()
Ответ на: комментарий от legolegs

Только что попробовал, не прокатило. Придётся с ssh-ключами мудрить).

Desmond_Hume ★★★★★ ()
Ответ на: комментарий от Desmond_Hume

нужно обязательно генерировать заново для root?

Можно и скопировать; главное, чтобы в authorized_keys на той стороне лежал публичный ключ, соответствующий секретному ключу, лежащему у root. Но почему бы не сгенерить?

dexpl ★★★★★ ()
Ответ на: комментарий от legolegs

У меня в 24 федоре прекрасно работает <…> noauto

То-то и оно, что noauto — убери его и не давай локальному руту ключ, и получишь то же самое. Или я чего-то не понял?

dexpl ★★★★★ ()
Ответ на: комментарий от dexpl

Вооот правильный вопрос. С noauto я монтирую сам, и ключ берётся мой, из /home/legolegs/.ssh/id_rsa. А когда монтируется «само», то чей id_rsa используется?

legolegs ★★★★★ ()
Последнее исправление: legolegs (всего исправлений: 1 )
Ответ на: комментарий от legolegs

А когда монтируется «само», то чей id_rsa используется?

Вопрос риторический? Рутовый, вестимо :)

dexpl ★★★★★ ()
Ответ на: комментарий от dexpl

Теперь я понял, куда монтируется это дело, теперь задача - смонтировать это пользователю, а не root'y)). В общем, на данный момент, содержимое fstab такое:

[root@localhost pushistiq]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Tue Nov 29 02:54:01 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/luks-f98ce45d-340b-4c41-8e73-d1443497c081 /                       ext4    defaults,x-systemd.device-timeout=0 1 1
UUID=e75301db-ce1d-491d-b9a0-fe73b00049c8 /boot                   ext4    defaults        1 2
/dev/mapper/luks-cb830964-b4f1-4a39-bdab-8a862a0a4470 /home                   ext4    defaults,x-systemd.device-timeout=0 1 2
/dev/mapper/luks-fbecc0b6-5f1b-4add-a7f7-c9d17db3ff8d swap                    swap    defaults,x-systemd.device-timeout=0 0 0
UUID=50588552-8b02-48b7-b2ed-6a0f320c30db	/mnt/Container2TB	ext4	defaults	0	0
UUID=8a8f70ca-66d2-4a8b-8fed-45d237e8f7f0	/mnt/Container3TB	ext4	defaults	0	0
pushistiq@192.168.1.41:/var/lib/transmission/Downloads/ /mnt/pushistiq-3vi-Downloads/	fuse.sshfs	defaults,_netdev	0	0
## pushistiq@192.168.1.41:/var/lib/transmission/Downloads /mnt/pushistiq-3vi-Downloads  fuse.sshfs	x-systemd.automount,_netdev,user,idmap=user,transform_symlinks,IdentityFile=/home/pushistiq/.ssh/id_rsa.pub,allow_other,default_permissions,uid=USER_ID_N,gid=USER_GID_N	0	0
Перезагружаюсь. Перезагрузка проходит в штатном режиме. Под пользователем набираю df -hT - моего монтажа sshfs не видно. Захожу к root (su), набираю df -hT — тут он мой монтаж)), вот он. Но, чёрт подери, какого... он там? Другие локации монтируются нормально к пользователю, а sshfs не хочет ни в какую.

Desmond_Hume ★★★★★ ()
[pushistiq@localhost ~]$ df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  7.9G     0  7.9G   0% /dev
tmpfs          tmpfs     7.9G  320K  7.9G   1% /dev/shm
tmpfs          tmpfs     7.9G  1.9M  7.9G   1% /run
tmpfs          tmpfs     7.9G     0  7.9G   0% /sys/fs/cgroup
/dev/dm-1      ext4       87G  7.1G   76G   9% /
tmpfs          tmpfs     7.9G   84K  7.9G   1% /tmp
/dev/sda1      ext4      1.4G  176M  1.1G  14% /boot
/dev/dm-2      ext4      131G   50G   74G  41% /home
/dev/sdc1      ext4      2.7T  581G  2.0T  23% /mnt/Container3TB
/dev/sdd1      ext4      1.8T  1.6T  118G  94% /mnt/Container2TB
tmpfs          tmpfs     1.6G   16K  1.6G   1% /run/user/42
tmpfs          tmpfs     1.6G   24K  1.6G   1% /run/user/1000
[pushistiq@localhost ~]$ su
Password: 
[root@localhost pushistiq]# df -hT
Filesystem                                              Type        Size  Used Avail Use% Mounted on
devtmpfs                                                devtmpfs    7.9G     0  7.9G   0% /dev
tmpfs                                                   tmpfs       7.9G  320K  7.9G   1% /dev/shm
tmpfs                                                   tmpfs       7.9G  1.9M  7.9G   1% /run
tmpfs                                                   tmpfs       7.9G     0  7.9G   0% /sys/fs/cgroup
/dev/dm-1                                               ext4         87G  7.1G   76G   9% /
tmpfs                                                   tmpfs       7.9G   84K  7.9G   1% /tmp
/dev/sda1                                               ext4        1.4G  176M  1.1G  14% /boot
/dev/dm-2                                               ext4        131G   50G   74G  41% /home
/dev/sdc1                                               ext4        2.7T  581G  2.0T  23% /mnt/Container3TB
/dev/sdd1                                               ext4        1.8T  1.6T  118G  94% /mnt/Container2TB
pushistiq@192.168.1.41:/var/lib/transmission/Downloads/ fuse.sshfs  455G  237G  196G  55% /mnt/pushistiq-3vi-Downloads
tmpfs                                                   tmpfs       1.6G   16K  1.6G   1% /run/user/42
tmpfs                                                   tmpfs       1.6G   24K  1.6G   1% /run/user/1000

Невкурю никак, что за прикол? Как fstab указать, что надо монтировать не к root-пользователю, а к pushistiq'у?))

Desmond_Hume ★★★★★ ()
Последнее исправление: Desmond_Hume (всего исправлений: 1 )
Ответ на: комментарий от Desmond_Hume

Но, чёрт подери, какого... он там?

Первое, что приходит в голову — добавить user_allow_other в /etc/fuse.conf.

dexpl ★★★★★ ()
Ответ на: комментарий от Desmond_Hume

У sshfs всегда была мулька про юзеров. Даже рута по умолчанию не пускает в смонтированные пользователями директории. Я не помню, как я это в своё время побеждал, возможно, что не и победил вовсе.

legolegs ★★★★★ ()
Ответ на: комментарий от legolegs

У sshfs всегда была мулька про юзеров.

Точнее, у fuse.

Я не помню, как я это в своё время побеждал

См. выше

dexpl ★★★★★ ()
Ответ на: комментарий от dexpl

Эта строчка была закомментирована. Снял комментирование, сохранился, перезагрузился — всё то же самое.

Desmond_Hume ★★★★★ ()
Ответ на: комментарий от legolegs

Нашёл решение! dexpl был прав насчёт fuse.conf - надо было раскомментировать строчку user_allow_other. И добавить в опции монтирования для этой точки в fstab — allow_other. Всё, заработало! Сейчас напишу шпаргалку для себя наверху)).

Desmond_Hume ★★★★★ ()
Последнее исправление: Desmond_Hume (всего исправлений: 1 )
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.