Вы не должны туннелировать ssh
. Вы можете ssh
к посредническому хосту затем ssh
где-либо еще Вам нужно.
Можно даже сделать это в единственной команде путем принуждения выделения использования pseudo-tty -t
флаг:
me@inside$ ssh -t intermediary ssh external
Last login: Fri Sep 21 14:13:25 2012 from intermediary
me@external$ logout
Connection to external closed.
Connection to intermediary closed.
me@inside$
Единственные вниз примыкают, то, что у Вас есть несколько сессий SSH. Но я не могу действительно видеть, почему это было бы проблемой.
Можно использовать rsync
для него. rsync
действительно разработан для этого типа операции.
Синтаксис:
rsync -avh /source/path/ host:/destination/path
или
rsync -a --ignore-existing /local/directory/ host:/remote/directory/
При выполнении его сначала время, это скопирует все содержание затем, это скопирует только новые файлы.
Если необходимо туннелировать, трафик посредством соединения SSH (например, в целях конфиденциальности), как обозначено Вами, первоначально прося основанное на SCP решение, просто добавляет -e ssh
к параметрам к rsync
. Например:
rsync -avh -e ssh /source/path/ host:/destination/path
Если вы хотите придерживаться SCP по какой-либо причине, вы можете удалить разрешения W в ваших локальных данных (если у вас есть право на это), и SCP не прикаси не с ним. Чтобы быть более точным:
CHMOD AW LOCAL / *. TAR.GZ
(в вашем локальном режиме) SCP Remote / *. Tar.gz Local
Это не очень эффективно, приятно, но может Помогите, если вам нужно быстрое временное решение, не переходя на что-то еще, чем SCP. (Kudos: SCP без замены существующих файлов в пункт назначения )
Не было точного ответа о том, как это сделать с SCP, так как именно это и задавался исходным вопросом.
sudo find / files / -type f -exec chmod aw {} \;
scp -r (скрытый) / files
После завершения копирования файлов измените права доступа обратно:
sudo chmod a + w -R / files
--ignore-existing
действительно требуемый? – Meysam 14.12.2013, 14:41rsync -t *.c foo:src/
-> "Это передало бы все файлы, соответствующие шаблону *.c от текущего каталога до каталога src на нечто машины. Если какой-либо из файлов уже существует в удаленной системе затем, rsync протокол удаленного обновления используется для обновления файла путем отправки только различий" – Meysam 14.12.2013, 14:46rsync -avuzh /source/path/ host:/destination/path
. Это делает целое задание в одной команде, и на последующих вызовах, только передает файлы, которым нужен он. – Edward Falk 25.06.2016, 00:07