Для мереж, що працюють лише в Linux, я вважаю, що SSHFS є рідним, стабільним та надзвичайно швидким. У мене є дві машини Xubuntu (18.04) для спільного використання / домашніх папок через SSH.
Ось, як налаштувати цей sshfs та автоматично повторно підключитися після перезавантаження, використовуючи fstab, не вказуючи пароль. Велике спасибі користувачеві kubanczyk сервера за замовчуванням за за те, як знову підключитися після віддаленого призупинення / відновлення.
Я буду використовувати "Локальна машина - серфінг" для комп'ютера, з яким ви підключаєтесь, та "Віддалена машина - devbox" для комп'ютера, до якого ви підключаєтесь.
Замініть "remoteuser" нижче на ім'я користувача, з яким ви увійдете на віддаленій машині, а "localuser" на ім'я користувача, з яким ви увійдете на локальній машині. Для перевірки імен користувачів введіть echo $USER
термінал на віддалених та локальних машинах.
Також перевірте свій ідентифікатор userID та groupID, вони мають бути 1000.
GroupID: id -g localuser
UserID:id -u localuser
1. Отримайте IP-адреси локальних та віддалених машин.
hostname -I
Я буду використовувати 192.168.1.150 для локальної машини ('серфінкс') і 192.168.1.151 для віддаленої машини ('devbox')
2. Встановіть пакети на локальні та віддалені машини
sudo apt install sshfs fuse ssh
3. Створіть груповий запобіжник та додайте до нього локальний користувач
Створити групу: sudo groupadd fuse
Додати локальногокористувача до групи: sudo usermod -a -G fuse $user
4. Увімкніть "enable_other" у конфігурації запобіжників
Цей варіант нам знадобиться при монтажі у fstab
Редагуйте /etc/fuse.conf
за допомогою редактора командного рядка. Видаліть хештег раніше user_allow_other
і збережіть.
5. Створіть SSH-ключі на локальній машині
Не вводьте пароль при появі запиту . Просто натисніть Enter, щоб залишити порожнім.
ssh-keygen -t rsa -C youremail@example.com
Клавіші зберігаються в домашній довідці локальної машини /.ssh
6. Перенесіть свій відкритий ключ SSH для локальної машини на віддалену машину
ssh-copy-id -i ~/.ssh/id_rsa.pub remoteuser@192.168.1.151
Вам буде запропоновано пароль для віддаленого користувача на віддаленій машині. Відкритий ключ локальної машини тепер додається до файлу ~ / .ssh / санкціонованих_кіїв на віддаленій машині.
7. Створіть каталог у папці Local machine / mnt, куди ви змонтуєте папку Remote machine / home.
Виберіть будь-яке ім’я, яке має сенс для вашого віддаленого апарату.
sudo mkdir /mnt/devboxhome
8. Встановіть віддалений апарат / домашній каталог з терміналу
Синтаксис для sshfs є
sshfs [user@]host:[directory] mountpoint [options]
ми використовуємо
sudo sshfs [remoteuser]@192.168.1.151:/home/[remoteuser] /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/[localuser]/.ssh/id_rsa
Приклад: припускаючи, що "steve" - це ім'я користувача на локальних і віддалених машинах
sudo sshfs steve@192.168.1.151:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa
Оскільки ви перенесли загальнодоступний ключ RSA на віддалену машину, вам не потрібно запитувати пароль віддаленого користувача.
Ви отримаєте попередження про те, що машині не довіряють та вимагають, якщо її потрібно додати. Додайте віддалену машину як надійну.
9. Перевірте: Огляд віддаленої машини / домашнього каталогу
У терміналі на локальній машині тепер ви можете перелічити каталог віддалених машин / дому під / mnt / devboxhome
cd /mnt/devboxhome
ls
або скористайтеся Nautilus для перегляду каталогу. Чудово.
10. Увімкнути повторне підключення після перезавантаження
Ми додамо запис у / etc / fstab, щоб це сталося. Вам знадобиться ваш локальний користувальницький користувач och groupid - див. Вступ, якщо ви пропустили це. Відредагуйте / etc / fstab за допомогою редактора командного рядка та додайте ці два рядки в кінці / etc / fstab
# Mount devbox at boot
remoteuser@192.168.1.151:/home/[remoteuser]/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/[localuser]/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0
- delay_connect змушує ядро чекати, поки мережа не працює, поки вона не спробує встановити каталог на віддаленій машині.
- Оскільки ми працюємо як root під час завантаження, ми мусимо вказати файл ключів, який зберігається в домашньому каталозі локального користувача
- enable_other - користувачі, відмінні від того, хто робить власне монтаж, можуть отримати доступ до змонтованої файлової системи.
- idmap = користувач - перекладати лише UID користувача, що підключається
- підключіться, ServersLiveInterval, ServerAliveCountMax - ssh надсилає невідповідні пінгви . Якщо
ServerAliveCountMax
послідовні пінг-файли не вдається, підключіть його знову.
Користувач, який увійшов як Steve на локальних та віддалених машинах, мав би:
steve@192.168.1.151:/home/steve/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/steve/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0
ВАЖЛИВО : коса риса після віддаленого каталогу: steve@192.168.1.151: / home / steve /
зберегти / etc / fstab і ....
11. Перезавантажте
Тепер ви зможете отримати доступ до віддаленої машини / домашнього каталогу в локальній машині / mnt / devboxhome. У Nautilus ви можете перетягнути цю папку на панель місць
12. Повторіть
Знову пройдіть ті самі кроки на віддаленій машині, щоб зробити спільний / домашній каталог локальної машини загальним.