Назад | Перейти на главную страницу

Скопируйте каталог с помощью ssh-туннеля

Следующая команда работает должным образом.

ssh soak@10.10.10.11 "ssh soak@10.199.199.191 'cat test.txt'" > /home/shantanu/test.txt

Что мне нужно сделать, так это скопировать весь каталог, а не один файл.

Можно ли использовать rync с SSH-туннелированием?

Ты можешь использовать scp для копирования одного или нескольких файлов, а также использования rsync с транспортом ssh:

scp -r localdirectoryname username@hostname:/remotepath

и

rsync -av localdirectory username@hostname:/remotepath 

Обе программы также работают наоборот: удаленная часть является источником, а локальная - местом назначения.

Видеть man scp и man rsync.

редактировать

Если вам действительно нужен промежуточный сервер, вы можете использовать переадресацию портов ssh:

В одной оболочке используйте эту команду для установки переадресации портов:

ssh -NL 10022:10.199.199.91:22 soak@10.10.10.11

Это соединяет порт 10022 на вашем локальном компьютере с портом 22 на 10.199.199.91, но не открывает оболочку, а просто блокирует ее, пока вы ее не завершите.

Впоследствии в другой оболочке / xterm вы можете использовать либо

scp -r -P 10022 localpath soak@localhost:/remotepath 

но нужно знать, что soak@localhost на самом деле указывает на soak@10.199.199.191 при вводе учетных данных.

Edit 2, теперь с rsync

Как вы специально спрашивали о rsync, вот как использовать rsync вместо scp. Требуется такая же переадресация портов, как и для scp вариант:

rsync -av --rsh="ssh -p 10022" localpath soak@localhost:/remotepath 

и снова помните, что вы на самом деле подключаетесь к soak@10.199.199.191.

Другой способ - использовать Перенаправление портов SSH.

Сначала запустите на своем компьютере следующую команду:

$ ssh -N -f -L 2302:10.199.199.191:22 soak@10.10.10.11

Это выделило сокет для прослушивания порта 2302 на локальном хосте. Каждый раз, когда соединение подключается к этому порту, оно будет перенаправлено на 10.199.199.191:22.

Таким образом, вы можете скопировать папку на 10.199.199.191 к вашей машине с:

$ scp -r -P 2302 soak@localhost:/path/to/folder /path/to/destination/dir

Вы можете добавить смолу.

например.

ssh soak@10.10.10.11 "ssh soak@10.199.199.191 'tar cf - test_directory'" | tar xf -

Также доступна команда ssh ProxyCommand.

Из Бессмертно:

Host internal.hostname.tld internal
  User          merdely
  HostName      internal.hostname.tld
  ProxyCommand  ssh merdely@gateway.hostname.tld nc %h %p 2> /dev/null