Я пытаюсь разрешить моему ноутбуку (Ubuntu 13.04) доступ к жесткому диску моего ПК (Lubuntu 13.04) через SSHFS. Я использую ключи RSA для подключения.
Это прекрасно работает, если я наберу это в терминале:
sshfs my-PC:/a_folder /media/a_folder
Но я бы хотел, чтобы он монтировался автоматически при загрузке моего ноутбука. Поэтому я добавил себя в группу предохранителей:
sudo adduser mynickname fuse
И добавил следующую строку в мой файл fstab:
sshfs#mynickname@my-PC:/a_folder /media/a_folder fuse defaults,idmap=user,_netdev 0 0
Когда я загружаю ноутбук, в списке появляется a_folder устройства, но не монтируется. Когда я пытаюсь получить доступ к нему через Nautilus, он отображает следующую ошибку:
mount: only root can mount sshfs#mynickname@my-PC:/a_folder on /media/a_folder
Я получаю ту же ошибку, если пытаюсь
mount /media/a_folder
в терминале.
Если я попытаюсь
sudo mount /media/a_folder
, я получу
read: Connection reset by peer
Я попытался добавить «allow_other» в качестве опции в запись fstab и раскомментировать соответствующую строку в / etc / fuse.conf, но это ничего не изменило.
Пользователь «mynickname» является владельцем папки / media / a_folder и имеет права доступа rwx.
Я просмотрел множество тем в Интернете о людях с довольно похожими проблемами, но пока ничего не получалось. Обычно люди не могут даже сделать
sshfs my-PC:/a_folder /media/a_folder
без сообщения об ошибке, тогда как на моем ноутбуке это работает нормально.
Будем весьма благодарны за любые идеи и советы! Спасибо.
РЕДАКТИРОВАТЬ: Я решил эту проблему некоторое время назад, но я забыл обновить этот пост. Итак, вот что у меня в fstab:
sshfs#mynickname@my-PC:/a_folder /media/a_folder fuse noauto,_netdev,idmap=user,user,default_permissions 0 0
Ключевым параметром для добавления был default_permissions, если я помню. Мне пришлось добавить ник в группу, к которой принадлежит / a_folder / на моем ПК.
Чтобы получить реальный вывод отладочной информации, вам нужно добавить опции sshfs_debug
и debug
в монтирование:
sshfs#mynickname@my-PC:/a_folder /media/a_folder fuse defaults,idmap=user,_netdev,debug,sshfs_debug 0 0
С этим вы получите много отладочной информации, чтобы помочь вам: ]
$ sudo mount -a
SSHFS version 2.5
FUSE library version: 2.9.2
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0
executing <ssh> <-x> <-a> <-oClearAllForwardings=yes> <-2> <user@box> <-s> <sftp>
user@box's password:
Server version: 3
Extension: posix-rename@openssh.com <1>
Extension: statvfs@openssh.com <2>
Extension: fstatvfs@openssh.com <2>
Extension: hardlink@openssh.com <1>
Extension: fsync@openssh.com <1>
unique: 1, opcode: INIT (26), nodeid: 0, insize: 56, pid: 0
INIT: 7.22
flags=0x0000f7fb
max_readahead=0x00020000
remote_uid = 1001
INIT: 7.19
flags=0x00000011
max_readahead=0x00020000
max_write=0x00020000
max_background=0
congestion_threshold=0
unique: 1, success, outsize: 40
unique: 2, opcode: STATFS (17), nodeid: 1, insize: 40, pid: 2771
unique: 3, opcode: LOOKUP (1), nodeid: 1, insize: 47, pid: 3371
В моем случае я обнаружил, что моя машина была указана только в .ssh/config
, поэтому она была неразрешима для root.
И кстати, вам нужно установить uid и gid, поскольку idmap=user
, похоже, работает только для текущего пользователя, который в данном случае является root.
Проблема, с которой вы сталкиваетесь, заключается в том, что ваш обычный пользователь правильно настроил файл идентификации, в то время как пользователь root не знает, какой ключ ssh использовать.
Вы можете исправить это, сообщив fstab, какой файл идентификации / ключ ssh использовать при попытке подключения:
sshfs#user@host:/mnt/whatever/ /mnt/whatever/ fuse user,_netdev,reconnect,uid=1000,gid=1000,IdentityFile=/home/USER/.ssh/KEYFILE,idmap=user,allow_other 0 2
Эта проблема также может возникать при изменении ключа хоста ssh.
Попробуйте подключиться к серверу через ssh (например, ssh username@hostIP
). Если появляется следующая ошибка:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Следуйте инструкциям в сообщении об ошибке, чтобы удалить старый ключ, и повторите попытку подключения через ssh. Если ошибка больше не появляется, соединение sshfs должно работать.
Полное раскрытие: выродок старой школы, но совершенно новый для мира linux / open source
Во-первых, я все еще использую аутентификацию по паролю, потому что я еще недостаточно разбираюсь в ключах RSA , Это почти наверху списка.
Соответствующая информация о настройке: Использование MacBook Pro с установленным VMWare Fusion, на котором у меня установлен сервер Ubuntu 10.04 LTS. Полагаясь на терминал Mac и SSH для почти всего моего взаимодействия с сервером
После запуска установки Drupal я откатился к предыдущему снимку и неожиданно не смог выполнить команду, которую только что использовал ранее: sshfs -o idmap=user -o allow_other user@mac.home:/Users/<username>/Documents ~/mountpoint
Проблема в том, что ключи вышли из синхронизации. Я не знаю, нужно ли мне это делать на моем хосте и на сервере, но я очистил все локальные ключи каждого из них, сначала сделав резервную копию файла known_hosts, а затем отредактировав файл known_hosts, чтобы удалить записи .
На Mac этот файл был расположен по адресу: /Users/<username>/.ssh/known_hosts
В Ubuntu этот файл находится по адресу: /home/<username>/.ssh/known_hosts
Итак, чтобы подвести итог, все выполнено с моего терминала Mac, после запуска up Ubuntu server:
cp /Users/<username>/.ssh/known_hosts /Users/<username>/.ssh/known_hosts.old
nano /Users/<username>/.ssh/known_hosts
# remove extra entries, save file
ssh <username>@ubuntu_server
cp /home/<username>/.ssh/known_hosts, /home/<username>/.ssh/known_hosts.old
nano /home/<username>/.ssh/known_hosts
# remove extra entries, save file
После первого SSH в каждой системе SSH предлагает мне разрешить добавление ключей RSA, и все работает после этого.