Назад | Перейти на главную страницу

sshfs монтируется с использованием аутентификации с открытым ключом: execvp: нет такого файла или каталога

Я пытаюсь смонтировать удаленную файловую систему через sshfs с использованием аутентификации с открытым ключом. Я получаю эту ошибку: execvp: No such file or directory

Я могу подтвердить, что аутентификация с открытым ключом работает с ssh:

ssh -i /home/me/.ssh/myKey user@192.168.1.1
Last login: Sun Jan 13 21:25:13 2013 from 192.168.1.2
-bash-3.00$

Я могу подтвердить, что sshfs правильно монтирует удаленный каталог с аутентификацией по паролю:

sshfs user@192.168.1.1:/remote/dir /local/dir -o ssh_command="ssh"
user@192.168.1.1's password: 
[root@192.168.1.2 .ssh]# df -h
Filesystem            Size  Used Avail Use% Mounted on
...
sshfs#user@192.168.1.1:/remote/dir
                     1000G     0 1000G   0% /local/dir

(Я знаю, что в указанном выше "-o" нет необходимости. Я использовал его, чтобы показать, что не удалось найти ssh это не причина, по которой это не удается) Но когда я пытаюсь подключить параметры открытого ключа к монтированию sshfs, например:

sshfs user@192.168.1.1:/remote/dir /local/dir -o ssh_command="ssh -i /home/me/.ssh/myKey",sshfs_debug

Я получаю это: execvp: No such file or directory на консоли, а каталог не смонтирован.

Я подтвердил, что "Нет такого файла или каталога" не означает, что он не может найти ssh (и я использовал / usr / bin / ssh, чтобы быть уверенным), и я подтвердил, что путь к ключу правильный:

ls -al /home/me/.ssh/myKey
-rw-------  1 nobody root 887 Jan 13 20:36 /home/me/.ssh/myKey

Удаленный хост не имеет записей в файле журнала о неудачных попытках.

Насколько я могу судить, я использую команду документированным образом, так что она должна работать, верно? Система, в которой происходит этот сбой, работает под управлением RHEL5.

Может ли кто-нибудь пролить свет на проблему или указать мне правильное направление? У меня закончились идеи по устранению неполадок.

IP-адреса и имена пользователей были изменены, чтобы защитить невиновных. Извините, если я допустил опечатки после копирования и вставки. Я исправлю их, если они найдутся.

Поскольку у меня была та же проблема с CentOS, я предполагал, что ssh_command не работает так, как заявлено (также это означает, что он не работает так же, как большинство других вещей, которые могут подключаться к SSH - например, rsync). Я начал искать способы настроить SSH для установки нужных мне параметров, не требуя от меня подачи ввода из командной строки в sshfs, и я нашел комбинацию, которая работает.

Я добавил к /etc/ssh/ssh_config следующие строки:

Host remotehost
HostName 192.168.1.1
User user
IdentityFile /home/me/.ssh/myKey

После этого мне больше не нужно было передавать какие-либо параметры командной строки в SSH через sshfs, и я получил следующую команду:

sshfs user@remotehost:/remote/dir /local/dir

Следует отметить, что remotehost в команде sshfs - точное значение, которое было определено для Host ключ в ssh_config.

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

FWIW, пост 4 в эта тема был источником моего вдохновения. Сообщение 5 выглядит многообещающим как способ избежать изменения общесистемной конфигурации, но это приводит к ошибке. execvp: Permission denied