Используйте sshfs с ssh-agent и / или kwallet

Я использую sshfs с парой ключей, защищенных паролем, для монтирования удаленной папки с помощью сценария оболочки. Я также использую SSH в этом сценарии.

Каждый раз, когда я запускаю скрипт оболочки, я получаю запрос пароля в командной строке для каждого отдельного вызова sshfs. Я должен предотвратить это.

Есть ли способ использовать sshfs с ssh-agent и / или kwallet (как я делаю для ssh)? Или я могу повторно использовать существующее соединение ssh с sshfs?

2 ответа

Вы начинаете sshfs из вашей оболочки или из скрипта при загрузке?

Если вы запускаете его из своей оболочки, и если у вас есть работающий ssh-agent, он должен просто работать:

$ ssh-add -l
2048 SHA256:XXXXX /home/ji/.ssh/id_rsa (RSA)
$ echo success > foo
$ scp foo ins:
  ...
$ rm foo
$ mkdir /tmp/j
$ sshfs ins: /tmp/j
$ cat /tmp/j/foo
success

Если вы запускаете его из местоположения, в котором еще нет SSH_AUTH_SOCK в его среде, и предполагается, что ssh-agent уже активен и имеет ключ, вы можете просто установить SSH_AUTH_SOCK на правильное значение, которое вы можете либо получить, запустив ps uxeww | grep SSH_AUTH_SOCK и массируя вывод, или просто глядя на то, что /tmp/ssh-*/* сокет вы можете получить доступ и использовать это! Я предполагаю, что вы можете написать простой скрипт для этого!

  1. Раскомментировать (или добавить строку) user_allow_other в /etc/fuse.conf
  2. Запустите монтирование без sudo

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

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