Вопрос или проблема
Мне нужно иметь возможность перезагрузить удаленный компьютер из сеанса ssh. При загрузке компьютер запускает несколько приложений, которые должны иметь доступ к моему Google Drive. Если я нахожусь на удаленном местоположении, я могу разблокировать связку ключей с клавиатуры, и все работает нормально. Но если он перезагружается и меня там нет, программы, которые выполняют скрипты, выполняющие команды gio, терпят неудачу. Как я могу получить доступ к своему Google Drive? Команда gio mount возвращает “доступ запрещен”. Я мог бы либо разблокировать свою связку ключей из сеанса ssh, либо предоставить gio учетные данные каким-то другим способом.
Я нашел bash-скрипт, который, кажется, делает что-то с моей связкой ключей (он действительно убирает всплывающие диалоги), но это не решает проблему с Google Drive.
P.S. Я бы предпочел не настраивать компьютер так, чтобы он не имел пароля (что, я полагаю, было бы другой альтернативой)
.
Ответ или решение
Для решения задачи, связанной с монтированием Google Drive без использования keyring, в условиях SSH-сессии и автоматического запуска приложений, рассмотрим пошаговый подход, который может удовлетворить вашим требованиям. Важно найти способ обойти необходимость ручного ввода пароля, сохраняя безопасность и функциональность.
Шаг 1: Настройка доступов через gdrive или rclone
-
Использование rclone:
Rclone — это мощный инструмент, который позволяет работать с различными облачными хранилищами, в том числе и с Google Drive. Чтобы использовать rclone для автоматического монтирования Google Drive, проделайте следующие шаги:- Установите rclone через пакетный менеджер вашей системы (например,
sudo apt install rclone
в Ubuntu). - Настройте конфигурацию, запустив
rclone config
и следуя инструкциям для добавления нового удаленного хранения. Выберите Google Drive, и следуйте шагам для аутентификации через командную строку. - Используйте OAuth-аутентификацию и выберите физический файл для хранения токенов аутентификации. Данный файл можно безопасно хранить и использовать для автоматического подключения.
- Установите rclone через пакетный менеджер вашей системы (например,
-
Создание скрипта для автоматического монтирования:
Создайте скрипт, который будет использоваться для монтирования Google Drive в определенную точку монтирования при загрузке системы.#!/bin/bash rclone mount mygoogledrive: ~/my_mounted_google_drive/ --vfs-cache-mode writes &
В этом скрипте
mygoogledrive
— это имя конфигурации, созданной в rclone, а~/my_mounted_google_drive/
— это путь, куда будет монтироваться Google Drive.
Шаг 2: Автоматизация процесса при старте системы
-
Добавление скрипта в autostart:
Убедитесь, что ваш скрипт для монтирования запускается при старте системы. Вы можете добавить этот скрипт в crontab, используя редакторcrontab -e
, добавив строку:@reboot /path/to/your/mount_script.sh
или создать systemd сервисный файл, чтобы управлять процессом через systemd.
-
Проверка работы:
После настройки и перезагрузки системы убедитесь, что ваша точка монтирования доступна и приложения корректно работают с ней.
Преимущества и Заключение
Использование rclone позволяет обойти ограничение, связанное с keyring, благодаря хранению требуемых аутентификационных токенов в конфигурационном файле. Данный метод добавляет необходимую гибкость для удалённого управления и автоматизации, при этом оставаясь в пределах безопасных практик управления доступами. Метод хорошо подходит для сценариев, где необходимо обеспечить доступ к облачным ресурсам без физического доступа пользователя для ввода паролей.