Есть сервер с CentOS 6.4 и удаленное sftp-хранилище (без Линукса)
Подключаюсь к нему командой:
sshfs пользователь@адрес: /var/spool/asterisk/ftpserver -o allow_other,reconnect,ServerAliveInterval=30,uid=1000,gid=1000,umask=000,nonempty
Потом надо вводить пароль.
Как можно подключаться автоматически, не вводя вручную пароль? Например в curlftpfs есть такая функция:
-o user=юзер:пароль
Но curlftpfs показался мне очень медленным.
Пробовал скопировать rsa ключ на хранилище командой:
ssh-copy-id -i ~/.ssh/id_rsa.pub '-p 22 юзер@адрес'
Но выходит такая ошибка:
exec request failed on channel 0
Ответ
$ ssh-copy-id -i ~/.ssh/id_rsa.pub '-p 22 юзер@адрес'
exec request failed on channel 0
вполне логично, если позволяют только sftp
если тамошний ssh-сервер вообще позволяет использовать ключи, попробуйте добавить их вручную:
примонтируйте домашний каталог этого пользователя куда-нибудь в пустой каталог:
$ sshfs пользователь@адрес: /локальный/пустой/каталог
создайте в нём каталог .ssh
$ mkdir -p /локальный/пустой/каталог/.ssh
добавьте в файл authorized_keys в этом каталоге ваш публичный ключ:
$ cat ~/.ssh/id_rsa.pub | tee -a /локальный/пустой/каталог/.ssh/authorized_keys
сделайте каталог .ssh и его содержимое недоступным другим пользователям:
$ chmod -R go= /локальный/пустой/каталог/.ssh
отмонтируйте домашний каталог:
$ fusermount -u /локальный/пустой/каталог
теперь попробуйте перемонтировать то, что вам требуется.
если всё равно запросит пароль, то, скорее всего, тамошний ssh-сервер либо вообще не поддерживает авторизацию по ключу, либо она запрещена (для данного пользователя).
тогда можно попробовать передать пароль через stdin. согласно man sshfs, программа должна понимать опцию password_stdin
$ echo пароль | sshfs -o password_stdin,другие-опции ...
Комментариев нет:
Отправить комментарий