scp/sshfs на удаленной машине, не доступной напрямую
Возможно, название нужно изменить, но у меня следующая ситуация:
Я могу SSH к хозяину A
Из A я могу войти в систему B, но к ней нельзя получить доступ с моего компьютера. Название машины (а также ее ip) является только локальным.
Как я могу sshfs (и / или использовать scp) напрямую к машине B, без необходимости scp файлы из B->A, а затем с A-> моей машины. Я действительно так теряю производительность,
PS: я не могу изменить конфиги в A и B...
3 ответа
Если вы аутентифицируетесь в B с учетными данными, доступными на вашем компьютере (назовем его W), например, паролем / именем пользователя (а не ключами на A), вы можете создать SSH-туннель, например:
W $ ssh -L 1234:B:22 A
а потом
W $ ssh -p 1234 usernameB@127.0.0.1
или аналогично с scp и sshfs. И. е. порт 1234 на вашем локальном компьютере (обычно 127.0.0.1 или::1) перенаправляется на B, порт 22 с точки зрения A.
Если у вас есть netcat на хосте A, тогда ssh's ProxyCommand - ваш друг.
Отредактируйте ваш локальный.ssh/config следующим образом
Host B
HostName B.internal.domain
ProxyCommand ssh A nc %h %p 2> /dev/null
Затем, когда вы пытаетесь подключиться по ssh к хосту B: сначала он создает сеанс ssh с A, а затем туннелирует трафик через netcat (nc) на порт 22 (% h) хоста B (%p).
Какая ОС у вас и пункт назначения работает?
Если это Linux, то протокол Zmodem идеально подходит для того, что вы пытаетесь сделать.