В случае, если у вашего /desired/path
на целевом компьютере есть доступ на запись только для root, и если у вас есть учетная запись на целевом компьютере с привилегиями sudo (привилегии суперпользователя с префиксом sudo
к вашей команде), Вы также можете сделать это следующим образом:
Вариант 1 на основе scp:
- скопировать файл в папку на целевом компьютере, где у вас есть доступ для записи, например
/tmp
: scp file user@destinationMachine:/tmp
- Войдите в систему назначения с помощью:
ssh user@destinationMachine
- Переместите файл на ваш
/desired/path
с помощью: sudo mv /tmp/file /desired/path
В случае, если вы Если у вас есть настройка sudo без пароля, вы также можете объединить шаги 2. и 3. в
ssh user@destination sudo mv /tmp/file /desired/path
Вариант 2 на основе rsyn c
Еще один, возможно, еще более простой вариант - использовать rsync
:
rsync -e "ssh -tt" --rsync-path="sudo rsync" file user@destinationMachine:/desired/path
с добавлением -e "ssh -tt"
для запуска sudo без tty.