2

Для меня сети - это очень "непрозрачная" вещь, и, даже прочитав много уроков по SSH, я не понимаю, как создать базовый туннель для передачи моих файлов.

Конфигурация следующая:

My Computer --[Internet]--> Bridge Machine --[Local Network]--> Final Machine

В настоящее время я делаю следующее:

1) Connect to the Bridge Machine with :
ssh -X username@bridgemachine.something.fr

2) Connect to the Final Machine with :
ssh -X username@finalmachine

3) I copy the address of files I need (for example .../mydirectory)

4) Then I deconnect from the finalmachine with :
exit

5) I copy the files to the bridge :
scp -r username@finalmachine:/.../mydirectory .

6) I deconnect from the bridge with :
exit

7) I copy the files to my machine :
scp -r username@bridgemachine.something.fr:/.../mydirectory .

Что довольно сложно. Мой вопрос является основным: как упростить это с помощью туннеля SSH?

(и, пожалуйста, объясните мне значение каждой командной строки, которую вы пишете, чтобы понять, что на самом деле делает каждая строка, и избегать использовать ее как волшебную вещь. Кроме того, если используется какой-либо номер порта, объясните мне, могу ли я выбрать совершенно случайное число или мне нужно выбрать конкретное.)

1 ответ1

3

Настройте файл конфигурации ssh:

~/.ssh/config

Этот файл поможет несколькими способами, но в конечном итоге позволит вам сделать все это за один шаг.

Сначала настройте псевдонимы для каждой машины.

Host bridge
User username

Host final
User username

Теперь вы можете использовать «ssh -X bridge» для соединения с первой машиной.

Для этого следующего шага вам понадобится netcat на каждой машине (попробуйте "which nc"), чтобы проверить. Затем используйте ProxyCommand с вашей "конечной" конфигурацией машин, чтобы она выглядела так:

Host final
User username
ProxyCommand ssh -CAYq bridge exec nc %h %p

Эта команда отправляет все, что вы хотите через центральный компьютер, на хост% h на порт% p (то есть, если вы хотите отправлять данные других приложений через другие порты, которые вы можете - до тех пор, пока это соединение открыто)

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

Теперь должен работать "ssh final", а также:

scp -r final:/.../directory .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .