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

странное поведение multihop ssh

У меня есть три машины A, B, C. Цель состоит в том, чтобы иметь возможность передавать файлы из A в C. У меня есть доступ по ssh из A в B и из B в C; B и C находятся в локальной сети. Этого можно добиться с помощью scp -o ProxyCommand вариант и он работает. Но прежде чем я наткнулся на это решение, я попробовал ssh -L метод, который не сработал. Проблема была выявлена, но не решена. Сначала было настроено локальное перенаправление ssh с A на C (на A) через. Б вот так:

ssh -p 8888 -L 5022:userC@hostC:22 userB@hostB

Использование ssh для проверки / тестирования на A:

ssh -p 5022 userC@localhost

Это не соответствует поговорке:

ssh_exchange_identification: Connection closed by remote host

/var/log/auth.log на B говорит:

sshd[9873]: error: connect_to userC@hostC: unknown host (Temporary failure in name resolution)

Я проверил, что символ двоеточия (:) после hostC вызывает ошибку, но не нашел способа исправить это. любые идеи были бы полезны.

Спасибо

-L предназначен для переадресации портов.

Формат -L port:host:hostport

Что бы вы ни пытались, добавляя имя пользователя в спецификацию имени хоста с помощью -L 5022:userC@hostC:22 было неверно.

————————————————————-

Самый простой способ выполнить multi hop ssh от хоста A через хост B к хосту C - с помощью переключателя команды ProxyJump. -J доступно в более новых версиях ssh

 ssh -J userB@hostB userC@hostC

Или с scp

 scp -o 'ProxyJump userB@hostB' file userC@hostC:/path/