SSH туннель между двумя серверами с ключами

391
MayField

У меня есть два сервера, A и B, используя два разных ключа. Я работаю на сервере A, и мне нужно перенести файлы на сервер B. Но у меня возникли проблемы с передачей файлов из-за отказа в соединении с сервером, когда я попробовал следующий ssh-туннель;

С сервера А:

ssh -L 1234:server_B:22 -p 45678 user_in_A@server_A 

затем там, кажется, пауза, и через некоторое время соединение истекает.

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

ssh -i key -L 1234:server_B:22 -p 45678 user_in_A@server_A 

но это не сработало.

До того, как я это сделал, я гуглил либо есть способ сделать это. Но большинство ответов и объяснений, похоже, приводят к тому, что ssh -L ...без ключа, так что я здесь пропустил? Может быть, концепция, которую я не понял, или я далеко от моей цели?

0

1 ответ на вопрос

1
telcoM

Если сервер 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).

Похожие вопросы