Я знаю, что эта тема обсуждалась столько раз, что мне почти стыдно, что я еще не нашел решения своей проблемы. Ясно, что есть кое-что, чего я совершенно не понимаю и был бы очень признателен за любой ввод или указатель.
sshfs USER@REMOTE:/ /mnt/ssh/backup
sshfs#USER@REMOTE:/ /mnt/ssh/backup/ fuse defaults 0 0
#: automount -V
Linux automount version 5.0.7
Directories:
config dir: /etc/default
maps dir: /etc
modules dir: /usr/lib/x86_64-linux-gnu/autofs
Compile options:
ENABLE_FORCED_SHUTDOWN ENABLE_IGNORE_BUSY_MOUNTS WITH_HESIOD
WITH_LDAP WITH_SASL LIBXML2_WORKAROUND
#: automount -m
autofs dump map information
===========================
global options: none configured
Mount point: /mnt/ssh
source(s):
instance type(s): file
map: /etc/auto.sshfs
backup | -fstype=fuse,rw,nodev,noatime,allow_other,default_permissions,max_read=65536 :sshfs#USER@REMOTE:/
auto.master
/mnt/ssh /etc/auto.sshfs --timeout=30,--ghost,--debug
auto.sshfs
backup -fstype=fuse,rw,nodev,noatime,allow_other,default_permissions,max_read=65536 :sshfs#USER@REMOTE:/
Когда я автоматически монтирую auto.master на переднем плане, как описано ниже, создается «резервная» папка, и удаленный каталог монтируется без каких-либо проблем. Я могу ls -al папку / mnt / ssh / backup и действительно просматриваю удаленный хост
#:automount -f -v -d auto.master
#:ls -al /mnt/ssh/backup
attempting to mount entry /mnt/ssh/backup
lookup_mount: lookup(file): looking up backup
lookup_mount: lookup(file): backup -> -fstype=fuse,rw,nodev,noatime,allow_other,default_permissions,max_read=65536 :sshfs#USER@REMOTE:/
parse_mount: parse(sun): expanded entry: -fstype=fuse,rw,nodev,noatime,allow_other,default_permissions,max_read=65536 :sshfs#USER@REMOTE:/
parse_mount: parse(sun): gathered options: fstype=fuse,rw,nodev,noatime,allow_other,default_permissions,max_read=65536
parse_mount: parse(sun): dequote(":sshfs#USER@REMOTE:/") -> :sshfs#USER@REMOTE:/
parse_mount: parse(sun): core of entry: options=fstype=fuse,rw,nodev,noatime,allow_other,default_permissions,max_read=65536, loc=:sshfs#USER@REMOTE:/
sun_mount: parse(sun): mounting root /mnt/ssh, mountpoint backup, what sshfs#USER@REMOTE:/, fstype fuse, options rw,nodev,noatime,allow_other,default_permissions,max_read=65536
do_mount: sshfs#USER@REMOTE:/ /mnt/ssh/backup type fuse options rw,nodev,noatime,allow_other,default_permissions,max_read=65536 using module generic
mount_mount: mount(generic): calling mkdir_path /mnt/ssh/backup
mount_mount: mount(generic): calling mount -t fuse -s -o rw,nodev,noatime,allow_other,default_permissions,max_read=65536 sshfs#USER@REMOTE:/ /mnt/ssh/backup
spawn_mount: mtab link detected, passing -n to mount
mount_mount: mount(generic): mounted sshfs#USER@REMOTE:/ type fuse on /mnt/ssh/backup
Но когда я запускаю службу autofs, как описано ниже, создается «резервная» папка, но как только я пытаюсь открыть каталог, она просто отказывается монтироваться.
#:service autofs start
#:ls -al /mnt/ssh/backup
attempting to mount entry /mnt/ssh/backup
lookup_mount: lookup(file): looking up backup
lookup_mount: lookup(file): backup -> -fstype=fuse,rw,nodev,noatime,allow_other,default_permissions,max_read=65536 :sshfs#USER@REMOTE:/
parse_mount: parse(sun): expanded entry: -fstype=fuse,rw,nodev,noatime,allow_other,default_permissions,max_read=65536 :sshfs#USER@REMOTE:/
parse_mount: parse(sun): gathered options: fstype=fuse,rw,nodev,noatime,allow_other,default_permissions,max_read=65536
parse_mount: parse(sun): dequote(":sshfs#USER@REMOTE:/") -> :sshfs#USER@REMOTE:/
parse_mount: parse(sun): core of entry: options=fstype=fuse,rw,nodev,noatime,allow_other,default_permissions,max_read=65536, loc=:sshfs#USER@REMOTE:/
sun_mount: parse(sun): mounting root /mnt/ssh, mountpoint backup, what sshfs#USER@REMOTE:/, fstype fuse, options rw,nodev,noatime,allow_other,default_permissions,max_read=65536
do_mount: sshfs#USER@REMOTE:/ /mnt/ssh/backup type fuse options rw,nodev,noatime,allow_other,default_permissions,max_read=65536 using module generic
mount_mount: mount(generic): calling mkdir_path /mnt/ssh/backup
mount_mount: mount(generic): calling mount -t fuse -s -o rw,nodev,noatime,allow_other,default_permissions,max_read=65536 sshfs#USER@REMOTE:/ /mnt/ssh/backup
spawn_mount: mtab link detected, passing -n to mount
>> read: Connection reset by peer
mount(generic): failed to mount sshfs#USER@REMOTE:/ (type fuse) on /mnt/ssh/backup
dev_ioctl_send_fail: token = 22
failed to mount /mnt/ssh/backup
Я протестировал множество обходных путей, включая, помимо прочего,
:sshfs\#USER@REMOTE\:/
:sshfs#USER@REMOTE:
IdentityFile=/root/.ssh/id_rsa
/mnt/ssh /etc/auto.sshfs uid=0,gid=0,--timeout=30,--ghost
У меня закончились идеи, и я застрял.
Заранее спасибо, JS
@KaszpiR - Спасибо за усилия, но правильный ключ уже загружен в файл authorized_keys на удаленном компьютере, и стандартные sftp или sshfs работают безупречно.
Похоже, что сценарий autofs initscript (или один из параметров, используемых для запуска автомонтирования в сценарии) создает проблему, но у него не было времени для ее правильной отладки.
В качестве обходного пути вы можете полностью удалить сценарий /etc/init.d/autofs (update-rc.d autofs удалить и переместить его в резервную копию для безопасного хранения) и запустить автоматическое монтирование вручную или с помощью сценария.
У меня была такая же проблема, мне пришлось добавить ключ ssh от пользователя root при подключении к удаленному компьютеру, чтобы разрешить вход по ssh без пароля:
sudo su -
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub remote_user@remote_server
попробуйте подключиться к удаленному компьютеру по ssh, пароль запрашивать не нужно.
перезапустить autofs