Похоже, что ответом было то, что я установил аккаунт своей жены без пароля, поэтому этап входа и экран были пропущены в обход. Теперь мы добавили пароль, иконка маленького зубчатого колеса находится там, и щелчок по ней дает выбор Гнома или Матэ, по желанию.
. Вы можете использовать что-то вроде ожидать, что
будет предоставлять учетные данные каждый раз, когда вы хотите подключиться. Это не очень безопасно, но дает вам то, что вы хотите.
#!/usr/local/bin/expect --
set timeout -1
spawn gvfs-mount {args}
expect "User"
send "joe\n"
expect "Password:"
send "xxxxx\n"
expect eof
Я такой же, как и вы, мне нравится монтировать / размонтировать свои файловые системы из командной строки.
Я не уверен, что это достаточно безопасно. Это хуже, чем элементы .netrc?
Вы должны знать, что во многих системах имена процессов и аргументы командной строки видны всем пользователям. Например, в Linux выполните grep -a. / proc / * / cmdline
, чтобы увидеть их все.
Тем не менее, в некоторых оболочках, включая bash, echo
является встроенной командой, поэтому процесс не запускается.
Итак, насколько мне известно, он должен быть не хуже, чем .netrc
. В любом случае дважды проверьте права доступа к файлам.
Вы можете gvfs-mount sftp: // somehost / somepath
работать без пароля. (Я только что это успешно проверил.)
Рекомендуемое решение - использовать аутентификацию на основе ключей, а не хранить где-либо пароль.
Например, см. аутентификация - Как я могу настроить SSH-вход без пароля? - Спросите Ubuntu и Самый простой способ скопировать ключи ssh на другую машину? - Спросите Ubuntu (он написан для Ubuntu, но работает так же для других Unix).
Я знаю о ssh-copy-id, но не могу получить доступ к оболочке на большинстве моих sftp-серверов.
ssh-copy-id - это просто удобный ярлык. Вам не нужен доступ к оболочке для установки аутентификации на основе ключей, но вам нужен доступ к вашему домашнему каталогу.
Если вы можете получить доступ к файлам в интерактивном режиме с помощью SFTP, вы, скорее всего, можете настроить ~ / .ssh /
и ~ / .ssh / authorized_keys
, если администратор тщательно не предотвратил это , но это будет стрелять им в ноги. На самом деле администратор должен поощрять пользователей устанавливать аутентификацию на основе ключей. Проверьте, какая у них политика.
Если вам просто нужно настроить только один ключ, вам просто нужно скопировать файл открытого (не закрытого) ключа, созданный выше (возможно, ~ / .ssh / id_rsa.pub
) в удаленный файл в каталоге .ssh
с именем authorized_keys
и установите разрешение 600
(чтение-запись для вас, ничего для других).
Что касается URL-адресов ftp, традиционный ответ - использовать ~ / .netrc
, как объяснялось, например, на https://askubuntu.com/a/359802/68124 .
Увы, он очень хорошо работает с огромным количеством ftp-клиентов, старых и новых, включая curlftpfs
, но (по крайней мере, в Ubuntu 14.04) gvfsmount
игнорирует его.
Возможно, curlftpfs
подойдет вашему варианту использования. Основное отличие состоит в том, что вы выбираете точку монтирования вместо того, чтобы вычислять ее gvfs-mount
.
curlftpfs ftp://host/ ~/mymountpoint
Если вам нравится опция curlftpfs
, вы можете рассмотреть возможность использования URL-адресов sftp,
sshfs host:/some/remote/path ~/myothermountpoint
И если вам интересно, нужен ли sshfs доступ к оболочке, Википедия говорит: Клиент взаимодействует с удаленной файловой системой через протокол передачи файлов SSH (SFTP), [2]
Последнее слово: для инструментов, которым требуется явная точка монтирования, подумайте о том, чтобы сначала создать пустой каталог по правильному пути. И если вы пытаетесь несколько раз или измените параметры, не забудьте fusermount -u somepath
для размонтирования перед повторной попыткой монтирования.