Если сервер A может установить TCP-соединение с портом 22 сервера B, и вы вводите эти команды на сервере A, то туннель не нужен.
ssh -L 1234:server_B:22 -p 45678 user_in_A@server_A
Если вы запускаете команду thes на сервере A, это означает:
- вы ожидаете, что сервер А будет иметь
sshd
порт 45678 - вы устанавливаете SSH-соединение с сервера A на user_in_A @ server_A
- вы также настраиваете туннель от порта 1234 сервера A к порту 22 сервера B, т.е. сервер A
sshd
будет настраивать прокси TCP на порту 1234 на сервере A и перенаправлять соединения к нему на порт 22 сервера B.
Поскольку SSH-соединение происходит от сервера A к серверу A, зашифрованная часть туннеля будет полностью находиться внутри сервера A, и поэтому практически бесполезна. Если туннель работает, это означает, что вы можете просто использовать scp
для передачи файлов без создания туннеля:
scp -i key_for_user_in_B /some/where/local/files user_in_B@server_B:
или же
scp -i key_for_user_in_B user_in_B@server_B:/some/remote/path /some/local/path/
Первый «вытолкнет» файлы из локального (A) в B, второй «вытянет» файлы из B в локальный (A).