Используя для этого мой закрытый ключ, эта команда позволяет мне без проблем подключиться к / home / backupUser / backup:
$ sudo sftp -oPort=7843 backupUser@192.168.x.x:backup
Однако, когда я запускаю duplicity, я получаю следующую ошибку:
duplicity full --exclude ... / scp://backupUser:passwd@192.168.x.x:7843:/backup
bash: wd@192.168.x.x:7843./backup: No such file or directory
Я предполагаю, что duplicity
интерпретирует /backup
путь относительно домашнего каталога пользователя.
Но поскольку приведенная выше команда не сработала, я также попытался оставить /
в каталоге резервного копирования в конце команды, т.е.
duplicity full --exclude ... / scp://backupUser:passwd@192.168.x.x:7843:backup
bash: wd@192.168.x.x:7843:backup: command not found
Что-то мне здесь не хватает, например, добавить код доступа для закрытого ключа, чтобы эта команда работала?
Думаю, нужно удалить: в вашей команде. Пожалуйста, обратитесь Вот
Хотя я рискую получить -1, я хочу уточнить типичные ошибки, которые мы допускаем в отношении дублированного формата (что было сделано в исходном вопросе).
Мы обычно забываем второй "//" в хосте, например:
duplicity full --exclude ... / scp://backupUser:passwd@192.168.x.x:7843:backup
Ошибка заключается в том, что (хотя кто-то указал, что это не должно быть ":") формат должен быть:
duplicity full --exclude ... / scp://backupUser:passwd@192.168.x.x:7843//backup
Я обычно забываю использовать "//" (хотя у меня бывают разные ошибки).
Хорошо, разобрался ... спасибо за вашу помощь!
Я попробовал выполнить команду sftp самостоятельно и заметил, что получаю ту же ошибку (No such file or directory
) всякий раз, когда я пропустил -oPort
аргумент.
#An sftp command I tried on it's own...
#sftp -oIdentityFile=/root/.ssh/id_rsa -oPort=7843 -oServerAliveInterval=15 -oServerAliveCountMax=2 buser@192.168.2.251
Я внес изменения в путь, предложенный @Sivaram Kannan выше, и добавил -oPort
аргумент к --ssh-options
, и это, похоже, решило проблему:
sudo duplicity --ssh-askpass --dry-run --num-retries 1 --ssh-options="-oPort=7843 -oIdentityFile=/root/.ssh/id_rsa" \
--exclude /proc --exclude /tmp --exclude /mnt --exclude /dev --exclude /sys \
--force / scp://buser@192.168.x.x:7843//home/backupUser/backup
(И, конечно, --dry-run
параметр удерживает его от запуска, просто проверяя его)
Похоже, это помогло.
Я предполагаю, что дублирование будет интерпретировать путь / backup как относительный к домашнему каталогу пользователя.
Правильно. Но синтаксис отличается от обычного scp
формат. Удалите двоеточие и попробуйте еще раз:
duplicity full --exclude ... / scp://backupUser:passwd@192.168.x.x:7843/backup
поскольку вы используете bash, я предполагаю, что вы хотите подключиться к пользователю Linux, вам следует попытаться добавить ~ sing перед каталогом /, это необходимо для того, чтобы перейти в домашний каталог пользователя.
Я знаю, что так должно быть автоматически, поскольку вы пытаетесь подключить пользователя резервного копирования, но, как я вижу в вашем вопросе, два ansers, которые вы получаете от bash, различны, один с ./backup, а другой: резервное копирование , поэтому я думаю, что вам следует попробовать со знаком ~.