Решение:
добавление строки export SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
в мой скрипт .sh решило проблему с помощью cron.
Что я хочу:
/home/<user>/mnt/remote-HD0
Что я пытался
Я всегда использовал абсолютные пути и также передавал sshkey (который копируется с помощью ssh-copy-id в удаленную систему), поэтому мне не нужно вводить пароль. Я также раскомментировал user_allow_other
из /etc/fuse.conf
.
Что не работает?
Если я печатаю cmd
sshfs -o allow_other,delay_connect,reconnect,identityfile=/home/<user>/.ssh/id_rsa <remote@filesystem>:/mnt/HD0 /home/<user>/mnt/remote-HD0
в терминале или запускаю его через исполняемый скрипт, он работает как задумано. У меня есть доступ к файловой системе и мне не нужно вводить pw. Однако, когда я использую версию fstab с
sshfs#<remote@filesystem>:/mnt/HD0 /home/<user>/mnt/remote-HD0 fuse defaults,_netdev,allow_other,identityfile=/home/<user>/.ssh/id_rsa 0 0
, она не монтируется, пока я не использую
sudo mount -a
и меня не попросят набрать pw для соединения ssh и нажать клавишу ввода для пустой парольной фразы. ...
С двумя другими попытками (crontab & amp; systemd) он либо вообще не работает, либо не работает, потому что /home/<user>/mnt/remote-HD0
недоступен, т.е.
ls /home/<user>/mnt/remote-HD0
ls: cannot access 'remote-HD0': Input/output error
ls -la
drwxrwxr-x 4 <user> <user> 4096 Jun 19 13:46 .
drwxr-xr-x 38 <user> <user> 4096 Jun 19 15:22 ..
d????????? ? ? ? ? ? remote-HD0
, поэтому что-то пошло не так с процессом монтажа. есть (вероятно) две проблемы:
1) команда sshfs выполняется до того, как сеть подключена (что я пытался учесть с помощью службы crontab и systemd)
2) даже при использовании сна cmd возникает эта проблема с «ошибкой ввода / вывода».
Я потратил уже несколько часов, пытаясь это исправить, и довольно много узнал обо всех используемых методах, но в этот самый момент я просто надеюсь на решение, чтобы я мог двигаться дальше (предпочтительно используя fstab или systemd, так как кажется правильной попыткой).
Согласно Версия №4 вопроса:
Добавление строки
export SSH_AUTH_SOCK = / run / user / 1000 / keyring / ssh
к сценарию sh решена проблема с cron.