Монтируем Synology NAS через SFTP

1. Включаем SSH и SFTP на Synology NAS

SSH:

  • Заходим на Web интерфейс Synology -> “Панель управления” -> “Терминал и SNMP” -> “Терминал” -> Включить службу SSH.
  • А так же устанавливаем порт (например 4222)

SFTP:

  • Web интерфейс Synology -> “Панель управления” -> “Файловые службы” -> “FTP” -> “SFTP” (ниже) -> Включить службу SFTP
  • И так же порт (например 4224)

2. Настройка на другой машине

  • Подключаемся используя ключ ssh, проверьте, есть ли у вас такой:

    1
    
    ls -la ~/.ssh
  • Если нет создайте новый:

    1
    
    ssh-keygen -t rsa
  • Копируем ключ на Synology NAS:

    1
    
    ssh-copy-id -p 4222 username@123.123.123.123

3. Настройка на SSH Synology

  • Подключаемся к Synology

    1
    
    ssh user@123.123.123.123 -p 4222

    Скорее всего вас все еще попросят ввести пароль, хотя вы уже добавили ключ через ssh-copy-id. Проверить это можно прочитав файл ~/.ssh/authorized_keys:

    1
    
    cat ~/.ssh/authorized_keys
  • Проверяем/меняем права доступа в домашней директории. Они очень важны для корректной работы SSH. Без них ключ не будет работать!

    1
    2
    3
    
    chmod 755 ~/
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
  • Открываем ssh конфиг

    1
    
    sudo vi /etc/ssh/sshd_config

    PermitRootLogin no - Отключаем логин напрямую через root

    PubkeyAuthentication yes - Включаем логин по ключу

    Краткая инструкция по vi:

    ESC - Обычный режим

    i - Режим ввода

    : - Режим команд

    / + text - поиск вниз

    ? + text - поиск вверх

    : + wq - записать и выйти

    : + q! - выйти без записи

    Позже можно будет вернуться и отключить логин по паролю PasswordAuthentication no. Но делайте это только после того, как проверили, что ключ работает корректно! Вы можете заблокировать себе доступ к SSH!

  • Перезапуск службы, чтобы применить новый конфиг

    1
    
    sudo synosystemctl restart sshd
  • Вернитесь на исходную машину. Проверьте, работает ли подключение с ключом:

    1
    
    ssh user@123.123.123.123 -p 4222

4. Монтирование вручную

  • Для подключения нам понадобится пакет sshfs. Установите его, если до этого вы этого не сделали:

    1
    
    sudo apt install sshfs
  • Создадим директорию, куда будем монтировать:

    1
    
    mkdir /media/synology
  • Пробуем смонтировать вручную:

    1
    
    sshfs -o IdentityFile=~/.ssh/id_rsa username@123.123.123.123:/path /media/synology -p 4224

    Заметьте, что тут порт уже указывается для SFTP. Проверьте что указываете верный.

  • Проверяем, что примонтировалось:

    1
    
    ls -la /media/synology
  • Размонтировать директорию можно следующим образом:

    1
    
    umount /media/synology

5. Автоматическое монтирование - fstab

  • Открываем /etc/fstab:

    1
    
    nano /etc/fstab

    И добавляем в конец:

    1
    2
    
    # Synology
    sshfs#username@123.123.123.123:/path /media/synology fuse defaults,idmap=user,port=4224,allow_other,reconnect,_netdev,users,ServerAliveInterval=15,identityfile=/home/user/.ssh/id_rsa 0 0

    Не забудьте изменить значения port и identityfile на свои.

  • Монтируем его содержимое:

    1
    
    mount -a
  • Так же проверяем, что получилось:

    1
    
    ls -la /media/synology

Возможные ошибки

read: Connection reset by peer

Чтобы понять, что происходит, выполните sshfs с дополнительным параметром

1
sshfs -o IdentityFile=~/.ssh/id_rsa username@123.123.123.123:/path /media/synology -p 4224 -v

Например, после сброса Synology NAS, он меняет ключ сервера. SSH будет выдавать такую ошибку думая, что это не та машина. Ключ находится в ~/.ssh/known_hosts, вы можете зайти и удалить информацию вручную. Или вырезать конкретные ключи по маске, указав ip/порт или все вместе:

1
2
ssh-keygen -f ~/.ssh/known_hosts -R "[123.123.123.123]:4222"
ssh-keygen -f ~/.ssh/known_hosts -R "[123.123.123.123]:4224"

Далее просто подключитесь повторно. Вам предложат добавить новый ключ сервера.