Невозможно подключить SSHFS к домашнему каталогу пользователя

Я пытаюсь настроить централизованный сервер домашнего каталога через sshfs и pam-mount.

В настоящее время я застрял на этом этапе:

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

d_inevitable@laptop:~$ sshfs -o nonempty,debug server: .
FUSE library version: 2.9.0
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0

В этот момент он зависает.

Это происходит потому, что домашний каталог включает в себя ~/.ssh. Поэтому, когда я пытаюсь sshfs -o nonempty server:.ssh .ssh, происходит то же самое.

Я полагаю, что fuse каким-то образом инициализирует монтирование, но затем ssh нужно что-то из его каталога конфигурации, поэтому он пытается прочитать из него. Предохранитель просто заблокирует это чтение, что приведет к тупику.

Какие вещи нужны sshfs из ~/.ssh?

Я попытался удалить все разрешения на чтение / запись из ~/.ssh и затем смонтировать их в какой-то другой каталог. Это работало нормально. Вывод отладки жаловался только на запись в .ssh/known_hosts.

4
задан 10 May 2013 в 10:27

1 ответ

Вы правы: fuse сначала инициирует монтирование, затем запускает процесс ssh. Это вызывает у вас проблемы, так как по умолчанию ssh читает файлы ~/.ssh/ssh_config, ~/.ssh/known_config, ~/.ssh/id_* из дома пользователя. Это поведение можно изменить:

  1. ~/.ssh/ssh_config является файлом конфигурации по умолчанию для каждого пользователя. Альтернативный файл конфигурации для каждого пользователя может быть указан с помощью опции -F или с помощью -F /dev/null, чтобы не указывать файл конфигурации для каждого пользователя.
  2. ~/.ssh/known_config используется для хранения и проверки ключей хоста. Вы можете использовать -o UserKnownHostsFile=/dev/null и либо вручную добавить ключ хоста в /etc/ssh/ssh_known_hosts, либо использовать -o StrictHostKeyChecking=no.
  3. ~/.ssh/id_* файлы являются файлами идентификации по умолчанию, используемыми для аутентификации клиента. Если вы хотите аутентифицироваться с использованием файла идентификации, вам нужно держать его вне домашнего каталога и использовать -o IdentitiesOnly=yes -o IdentityFile=<path to private key>. Или же вы можете аутентифицироваться в интерактивном режиме, если вы используете -o IdentitiesOnly=yes -o IdentityFile=/dev/null -o PubkeyAuthentication=no.

Например, для монтирования дома с использованием sshfs, аутентификации с использованием пароля, без проверки ключа хоста, запустите

sshfs user@server: ~/ -o nonempty -F /dev/null -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o IdentitiesOnly=yes -o IdentityFile=/dev/null -o PubkeyAuthentication=no
0
ответ дан 10 May 2013 в 10:27

Другие вопросы по тегам:

Похожие вопросы: